利用Sqoop实现MySQL与HDFS数据互导

利用Sqoop将MySQL中的数据表导入到hdfs端:(表格的主键要存在)
首先在MySQL的test数据库中有如下表格person:
这里写图片描述
在终端输入以下命令即可实现将person表导入到hdfs端:

sqoop import \
--connect jdbc:mysql://localhost/test \
--username root --password 147369 \
--table person \
--target-dir /vagrant/person_hdfs \
--null-non-string '\\N';

其中import表示导入数据,connect行命令表示连接MySQL的test数据库,username和password为MySQL的用户名和密码,table为要导入的表格,target-dir为hdfs的目标位置,null-non-string ‘\N’会将数据库表中的null值转化为Hive和Impala中的\N,便于兼容。
运行结果如下:
这里写图片描述
前往hdfs网页查看:
这里写图片描述

利用Sqoop将hdfs端的数据表导入到MySQL:
1.查看hdfs端数据的内容:
这里写图片描述
可知:person目录下的数据以’,’为分界符。我们的目标是将person目录下的全部数据导入到MySQL。
2.在MySQL中创建相应格式的表格:

use test
create table p(id int primary key, age int, sex int);

3.在终端输入以下命令即可实现将hdfs端person目录下的数据导入到MySQL中:

sqoop export \
> --connect jdbc:mysql://localhost/test \
> --username root --password 147369 \
> --table p \
> --export-dir /user/hive/warehouse/person/* \
> --input-fields-terminated-by ',';

其中export命令表示导出数据,table为MySQL中test数据库的表格p,export-dir为hdfs端需要导出的目录,input-fields-terminated-by ‘,’表示hdfs端需要导出的数据的分界符为’,’。
4.前往MySQL数据库查看:
这里写图片描述
Bingo,这样我们就利用Sqoop实现MySQL与HDFS数据互导。



本次分享到此结束,欢迎大家交流与批评~~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值