使用Sqoop实现HDFS到mysql的数据导出

在实现数据导出之前,我们先做一下数据导入,使HDFS中有数据。

  • 将之前已经存在的表emp的数据导入至HDFS
[root@hadoop01 ~]# sqoop import --connect jdbc:mysql://hadoop03:3306/test_sqoop --username root --password 123456 --table emp --target-dir hdfs://hadoop01:8020/test_sqoop_hdfs/emp --delete-target-dir;

可以看到数据已经导入:

  • 在mysql中创建要接收HDFS导出数据的表
[root@hadoop03 ~]# mysql -uroot -p123456
mysql> use test_sqoop;
mysql> create table emp_export(
    -> empno INT primary key,
    -> ename VARCHAR(50),
    -> job VARCHAR(50),
    -> mgr INT,
    -> hiredate DATE,
    -> sal DECIMAL(7,2),
    -> comm decimal(7,2),
    -> deptno INT);
  • 导出数据
[root@hadoop01 ~]# sqoop export --connect jdbc:mysql://hadoop03:3306/test_sqoop \
> --username root \
> --password 123456 \
> --table emp_export \        #导出至哪个表
> --export-dir '/test_sqoop_hdfs/emp/*' \        #导出HDFS中的哪个目录的数据
> -m 1;                #指定map进程数



#mysql中默认使用逗号对字段进行分隔,所以如果你的HDFS中的数据如果是以逗号分隔的话,这里不用特殊处理,如果HDFS中的数据是以非逗号,比如以\t来分隔的,那么在导出数据时,就需要在这里加上参数--input-fields-terminated-by '\t'表示你input的数据是以\t来分隔的。
  • 查看表
mysql> select * from emp_export;

可以看到表中数据与HDFS目录中的数据一致,导出成功。

 

评论 1 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

QYHuiiQ

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值