生产环境下Azkaban调度Sqoop,将数据从MySQL导入到hive中的过程分析

1.只用Sqoop

用于关系型数据库如mysql与非关系型数据库间数据的导入导出,要注意空值的处理。
Sqoop将mysql数据导出到hive中,需要经过两步,
sqoop直接导入hive中其实他底层会做两件事,1,数据到hdfs 2.hdfs到hive 而且都是mr(由于他的底层就是Map)

2.使用Azkaban调度

azkaban调度Sqoop:
由azkaban调度Sqoop将mysql导到hdfs一步,从hdfs到hive-ods再一步这样第二步用得是hive的load更快,hive的load是直接剪切文件,因此生产环境下采用这个方式。

3.拓展:

3.1Sqoop import原理

从传统数据库获取元数据信息(schema、table、field、field type),把导入功能转换为只有Map的Mapreduce作业,在mapreduce中有很多map,每个map读一片数据,进而并行的完成数据的拷贝

Sqoop 在 import 时,需要制定 split-by 参数。
Sqoop 根据不同的 split-by参数值 来进行切分, 然后将切分出来的区域分配到不同 map 中。每个map中再处理数据库中获取的一行一行的值,写入到 HDFS 中。同时split-by 根据不同的参数类型有不同的切分方法,如比较简单的int型,Sqoop会取最大和最小split-by字段值,然后根据传入的 num-mappers来确定划分几个区域。

3.2Sqoop export 原理

获取导出表的schema、meta信息,和Hadoop中的字段match;多个map only作业同时运行,完成hdfs中数据导出到关系型数据库中.
——————————————————————————
部分引用自:https://www.jianshu.com/p/f3e3a4c3b429

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值