一、sqoop在将mysql数据写入HDFS并关联hive时不须要提早在hive中创建对应表,sqoop将在hive中自动创建同名表。html
二、参考命令参数地址:mysql
http://www.zihou.me/html/2014/01/28/9114.htmlsql
http://book.51cto.com/art/201412/460072.htm 数据库
三、将mysql数据写入HDFSoop
sqoop import -connect jdbc:mysql://192.xxx.x.x:3306/data -username hivedb -password hivedb -table tb_clientupload -m 1 -target-dir /user/hadoop/sqoop1
命令释义:spa
sqoop import(表示此为导入命令) -connect jdbc:mysql://192.xxx.x.x:3306/data(链接的数据库地址) -username hivedb(链接数据库所需的用户名) -password hivedb(链接数据库所需的密码)-table tb_clientupload (要导入的数据库中的表)-m 1 (导入的并行数启动N个map来并行导入数据,默认是4个,最好不要将数字设置为高于集群的节点数,此处启动了几个并行,导入到HDFS中的数据就将被分割为几个文件。设为1则不启动并行,HDFS中文件就将按照Block Size的128M大小来分割文件,当数据大于128M时进行分割)-target-dir /user/hadoop/sqoop1(要导入到的HDFS中的目录)code
更新:导入非本地的hdfs地址时,-target-dir hdfs://hdfs的ip地址:hdfs的端口/user/hadoop/sqoop1xml
便可。htm
运行成功后在HDFS中查看结果以下:ip
四、将mysql数据写入Hive
sqoop import -connect jdbc:mysql://192.xxx.x.x:3306/data -username hivedb -password hivedb -table tb_sensorstate -m 1 -hive-import
Sqoop1.4.6彷佛已经不支持向hive中根据自增主键ID作增量导入,还能够根据日期进行更新。
这个还不太肯定。