Sqoop学习手册

1 简介及原理

1.1简介

Sqoop是Apache旗下的一款“hadoop和关系型数据库服务器之间传送数据”的工具。
导入数据:MySQL、Oracle导入数据到hadoop的hdfs、hive、HBASE等数据存储系统。
导出数据:从hadoop的文件系统中导出数据到关系型数据库中。

1.2 sqoop 导入导出原理

参考自Sqoop的介绍(导入导出原理)

1.2.1 数据导入在这里插入图片描述

  1. sqoop会通过jdbc来获取需要的数据库的元数据信息,例如:导入的表的列名,数据类型。
  2. 这些数据库的数据类型会被映射成为java的数据类型,根据这些信息,sqoop会生成一个与表名相同的类用来完成序列化工作,保存表中的每一行记录。
  3. sqoop开启MapReduce作业
  4. 启动的作业在input的过程中,会通过jdbc读取数据表中的内容,这时,会使用sqoop生成的类进行序列化。
  5. 最后将这些记录写到hdfs上,在写入hdfs的过程中,同样会使用sqoop生成的类进行反序列化。

1.2.2 数据导出

解释:

  1. 首先sqoop通过jdbc访问关系型数据库,得到需要导出的数据的元数据信息
  2. 根据获取的元数据信息,sqoop生成一个java类,用来进行数据的传输载体,该类必须实现序列化
  3. 启动MapReduce程序
  4. sqoop利用生成的这个java类,并行的从hdfs中读取数据。
  5. 每一个map作业都会根据读取到的导出表的元数据信息和读取到的数据,生成一批insert语句然后多个 map 作业并行的向数据库 mysql 中插入数据。

总结:数据是从hdfs中并发进行读取,也是并发进行写入,那并行的读取时依赖hdfs的性能,而并行的写入到MySQL,就要依赖MySQL的性能

1.3 Sqoop技术核心

  1. 生成mapreduce
    sqoop接收用户的请求,通过解析请求,生成mapreduce代码,并打包,将打好的jar包提交给hadoop执行。生成mapreduce代码是sqoop的核心技术,也是数据传输的关键。

  2. 作业创建
    主要用于定时任务,定时导入导出新数据的sqoop作业。例如增量导入。

  3. 数据映射
    关系型数据库字段是有类型的,数据映射可以自动对数据库字段类型和hadoop的类型进行对应。当然也可以自定义类型映射。

  4. 并行控制
    采用sqoop集群或者多个任务并行进行数据的导入导出工作。主要在大型导入导出任务中,为了提升性能使用的。

2 Sqoop导入

。。。太简单了,先参考视频吧:Sqoop入门实践教程

2.1 全表导入

2.2 限制数据范围导入

2.3 增量导入

3 Sqoop导出

4 Sqoop作业制定

4-1 数据增量导入作业

4-2 定时作业调度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张之海

若有帮助,客官打赏一分吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值