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

本文介绍如何使用sqoop工具将MySQL数据库中的数据导入到Hadoop的HDFS及Hive中,并提供了具体的命令示例及参数解释,还探讨了增量导入的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、sqoop在将mysql数据写入HDFS并关联hive时不需要提前在hive中建立对应表,sqoop将在hive中自动建立同名表。

2、参考命令参数地址:

http://www.zihou.me/html/2014/01/28/9114.html

http://book.51cto.com/art/201412/460072.htm

3、将mysql数据写入HDFS

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

命令释义:

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中的目录)

更新:导入非本地的hdfs地址时,-target-dir hdfs://hdfs的ip地址:hdfs的端口/user/hadoop/sqoop1

即可。

运行成功后在HDFS中查看结果如下:

4、将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做增量导入,还可以根据日期进行更新。

这个还不太确定。

转载于:https://my.oschina.net/u/2478308/blog/757802

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值