Sqoop的简单使用案例之数据导出

举报
WHYBIGDATA 发表于 2023/03/18 08:27:59 2023/03/18
【摘要】 Sqoop的简单使用案例之数据导出

Sqoop的简单使用案例之数据导出



写在前面

  • Hadoop版本:Hadoop-3.1.3
  • Linux版本:CentOS7.5
  • Sqoop版本:Sqoop-1.4.6
  • MySQL版本:MySQL5.7
  • Hive版本:Hive-3.1.2

导出数据的演示说明

在Sqoop中,「导出」概念指:从大数据集群(HDFS,HIVE,HBASE)向非大数据集群(RDBMS)中传输数据,叫做:导出,即使用 export 这个关键字。

以下有关sqoop的数据导出命令都需要先进入到sqoop的安装目录下

导出的前置说明

  • 该导出工具export是将一组文件从HDFS导出到RDBMS。目标表必须已经存在于数据库中。输入文件被读取并根据用户指定的分隔符解析成一组记录。

  • 默认的操作是将这些转化为一组 INSERT 语句,将记录注入到数据库中。在 更新模式 中,Sqoop将生成UPDATE语句,替换数据库中的现有记录;在 调用模式 中,Sqoop将为每条记录进行存储过程调用。

export的基本语法

$ sqoop export (generic-args) (export-args)
$ sqoop-export (generic-args) (export-args)

注意:尽管Hadoop通用参数必须在任何出口参数之前,但出口参数可以以任何顺序输入。

HIVE/HDFS数据导出到RDBMS

  • 确定MySQL服务开启正常

通过sqoop将Hive存储的数据导出到MySQL关系型数据库的shell命令如下所示:

[whybigdata@node01 sqoop-1.4.6]# bin/sqoop export \
--connect jdbc:mysql://hadoop102:3306/company \
--username root \
--password 000000 \
--table staff \
--num-mappers 1 \
--export-dir /user/hive/warehouse/staff_hive \
--input-fields-terminated-by "\t"

注意:MySQL中如果表不存在,不会自动创建,所以需要提前确保数据导出到MySQL的数据表已经存在

当然,我们除了通过上述的方式将Hive或者hdfs上的数据导出到关系型数据库MySQL之外,我们还可以通过编写脚本的方式来将数据导出到关系型数据库MySQL,下面我们将来演示这一个实验操作。

脚本打包

使用opt格式的文件打包sqoop命令,然后执行

  • 创建一个 .opt 文件
[whybigdata@node01 sqoop-1.4.6]# mkdir opt

[whybigdata@node01 sqoop-1.4.6]# touch opt/job_HDFS2RDBMS.opt
  • 编写sqoop脚本
[whybigdata@node01 sqoop-1.4.6]# vim opt/job_HDFS2RDBMS.opt
## 添加如下内容
export
--connect jdbc:mysql://hadoop102:3306/company
--username root
--password 000000
--table staff
--num-mappers 1
--export-dir /user/hive/warehouse/staff_hive
--input-fields-terminated-by "\t"
  • 执行该脚本
[whybigdata@node01 sqoop-1.4.6]# bin/sqoop --options-file opt/job_HDFS2RDBMS.opt

数据导出失败的原因分析

数据导出往往可能因为某些原因而导致失败,可能的原因列举如下:

  • 由于硬件的故障,或者服务器软件崩溃导致hadoop集群和关系型数据库之间的连接不成功
  • 导出的数据原本是不完整或者是畸形的
  • 导出的shell命令书写有误(例如:分隔符、端口、数据路径等等)
  • 容量问题:比如是内存或虚拟机的磁盘空间不足。

全文结束!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。