sqoop1.4.6将mysql的表数据导入到hive1.2.1中

到入到hive中:

sqoop import --connect jdbc:mysql://master:3306/slg --username  
user --password 123456 --table test --hive-imphive-database  
default --fields-terminated-by ',' -m 1  

使用--password-file

这种方式是事先将密码写入文件filename(此文件必须在HDFS上),然后通过–password-file进行读取 先创建文件并上传到HDFS中,并将读写权限设置为400:

echo -n 'mysql_password' > sqoop.pwd    #这里一定要-n,否则会报错  
hdfs dfs -put sqoop.pwd /user/hadoop/  
hdfs dfs -chmod 400 /user/hadoop/sqoop.pwd  
rm -rf sqoop.pwd  

然后添加job

sqoop job --create test2 -- import --connect jdbc:mysql://master:3306/slg  
--username user --password-file sqoop.pwd --table test 
--hive-import --hive-database default --fields-terminated-by ',' -m 1

然后

*/5 * * * * /usr/local/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin/sqoop job -exec test2 >> /usr/local/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/test2.log

设置crontab计划任务,五分钟导入一次数据 导入数据到hive,指定临时hdfs目录

sqoop import --connect jdbc:mysql://master:3306/slg --username username --password-file sqoop.pwd --table test --hive-import --hive-database default --target-dir /user/slg_test --delete-target-dir --fields-terminated-by ',' -m 1

# --target-dir /user/slg_test  指定临时目录
# --delete-target-dir          临时目录存在则删除