sqoop2 java api实现_Sqoop2架构与功能说明(1.99.3)

介绍

Sqoop是一个开源的ETL软件。通过Sqoop可以在关系数据库(如Oracle、MySQL)与HDFS之间导入和导出数据。

Sqoop通过Hadoop的MapReduce将关系数据库中的数据导入到HDFS中。Sqoop也支持从HDFS数据导出到关系数据库。

关系数据库方面:Sqoop支持可通过JDBC驱动访问的各种常见数据库。比如Oracle、MySQL、Microsoft SQL Server和PostgreSQL等。

Hadoop方面:最新版本的Sqoop仅支持导入到HDFS中,不支持直接导入到Hive和HBase中(详见后文Sqoop 1和Sqoop 2的对比)。

Sqoop1和Sqoop2对比

Sqoop1是指Sqoop 1.4.x系列版本,此系列版本Sqoop为单机模式部署形态。

Sqoop2是指Sqoop 1.99.x系列版本,此系列版本Sqoop的C/S模式部署形态。

对比1:支持的关系数据库类型

差别不大,常见的关系型数据库二者都可以支持。

对比2:集成Kerberos认证

Sqoop1支持集成Kerberos认证,Sqoop2的1.99.3版本还不支持(Sqoop 1.99.6版本已经支持)。

对比3:关系数据库与Hive、HBase之间的数据互导

Sqoop1支持,Sqoop2不支持。在Sqoop2场景下,可以通过先将数据导入/导出到HDFS中转。HDFSHive/HBase可以使用Hive的LOAD DATA等命令完成。

Sqoop2架构

架构图

我画的架构图:

7f28ab3d63d5b2974bc2f0ddda9560cb.png

网上的架构图:

f72ab2e43fc947348ebfd193502c0bb2.png

架构描述

Sqoop Server提供REST接口,Sqoop Client的内部实现实际上通过REST接口访问Sqoop Server;

Sqoop提供Java API,可通过此API连接Server;

Sqoop Server启动后会监听两个端口,分别是12000和12001。其中12000用于提供REST接口,12001说是用于管理,具体使用方法未知。

Sqoop不足

Sqoop Server不支持基于时间的任务调度。Sqoop Server支持以批处理脚本的方式执行命令,可以基于批处理脚本结合crontab等时间调度软件,实现任务的周期性调度;

Sqoop只支持从关系型数据库中导数据,只支持导出结构化数据,不支持导非结构化数据;

作为ETL软件,Sqoop有提供Extract和Load的功能,但Transformation的功能基本没有提供。比如无法对抽取的数据作为格式变换;

Sqoop的metadata保存在Derby数据库中,目前暂不支持使用MySQL存储Metadata;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值