本文主要介绍通过编写shell命令及定时执行(crontab)方式,定时自动执行Sqoop及Hive命令。
编写Shell批量执行命令#!/bin/sh
#将mysql表数据导入hive
sqoop import --connect jdbc:mysql://192.168.213.1:3306/casedb --username root --password root --table category --hive-import --create-hive-table -m 1
#将hive表中的t_class表,执行查询过滤后,结果输出到HDFS的 /output/t_class目录
hive -e "INSERT OVERWRITE DIRECTORY '/output/t_class'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
SELECT * FROM t_class WHERE id > 100;"
#删除t_class表中原有数据,避免多次插入重复数据
sqoop eval --connect jdbc:mysql://192.168.35.6:3306/lexian --username root --password root --query "DELETE FROM t_class"
#将HDFS结果导出到mysql的t_class表中
sqoop export --connect jdbc:mysql://192.168.213.1:3306/casedb --username root --password root --table t_class --direct --export-dir /output/t_class --driver com.mysql.jdbc.Driver --input-fields-terminated-by '\t' --lines-terminated-by '\n'
hadoop fs -rmr /output/browseresult
欢迎光临 168大数据 (http://www.bi168.cn/) | Powered by Discuz! X3.2 |