Sqoop1实现数据传递至HDFS和Hive中

一、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作增量导入,还能够根据日期进行更新。

这个还不太肯定。

相关文章
相关标签/搜索