sqoop概述与简单实践 & sqoop-1.4.6-cdh5.7.0安装

目录

产生背景

当有数据想从RDBMS上抽取到Hadoop时,有以下几种方式:
1)读取一个文件后,加载到Hive的表中
2)通过编写shell脚本来获取RDBMS上的数据,之后通过HDFS shell中的put命令传到HDFS
3)使用MapReduce将RDBMS上的数据写到HDFS,这种也是最常用的方式

当有数据想从Hadoop上导入RDBMS上时,也可以使用MapReduce来操作。

但以上的数据导入/导出存在比较明显的问题:
1、MapReduce编写的繁琐
2、效率低下(比如,当新进一条业务线,就必须得再写一个MapReduce,复用性差)

基于存在的问题,抽取一个框架该怎么设计?
1、RDBMS
需要: drive/username/password/url/database/table/sql等
2、Hadoop
需要: hdfs path/分隔符/mappers数量/reducers数量(reducer的数量决定了有多少个文件输出)
3、需求1:当接入新的业务线后,只需要将新的业务所对应的参数传递给MapReduce即可
a. 使用hadoop jar的方式来提交作业
b. 动态的根据业务线需求来传入参数
4、需求2: 使用操作简洁便利
WebUI + DB Configuration ==> UI/UE
使每条业务线就是一行表记录,全部配置到数据库内,用户只需要在UI操作即可

在上述的问题及愿景下产生了Sqoop框架。


sqoop1与2的区别

sqoop1不兼容sqoop2,sqoop2相比sqoop1改进了以下几个方面:

  1. 引入了sqoop server,集中化管理connector等
  2. 多种访问方式: CLI,Web UI,REST API
  3. 引入了基于角色的安全机制

sqoop1和sqoop2的功能对比

功能 sqoop1 sqoop2
用于所有主要RDBMS的连接器 支持 不支持
解决办法: 使用已在以下数据库上执行测试的通用 JDBC 连接器: Microsoft SQL Server 、 PostgreSQL 、 MySQL 和 Oracle 。
此连接器应在任何其它符合 JDBC 要求的数据库上运行。但是,性能可能无法与 Sqoop 中的专用连接器相比
k8s安全集成 支持 不支持
数据从RDBMS传输至Hive或HBase 支持 不支持
解决办法: 按照此两步方法操作。 将数据从 RDBMS 导入 HDFS 在 Hive 中使用相应的工具和命令(例如 LOAD DATA 语句),手动将数据载入 Hive 或 HBase
数据从Hive或HBase传输至RDBMS 不支持
解决办法: 按照此两步方法操作。 从 Hive 或 HBase 将数据提取至 HDFS (作为文本或 Avro 文件) 使用 Sqoop 将上一步的输出导出至 RDBMS
不支持
按照与sqoop1相同的解决方法操作
sqoop1架构图

在这里插入图片描述

sqoop2架构图

在这里插入图片描述
sqoop1在使用上通过sqoop客户端直接提交作业,通过CLI控制台的方式访问
sqoop2引入sqoop server,实现集中管理,并可以通过web UI的交互方式来进行访问


sqoop1部署相对比较简单,但

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值