1 SQOOP作用
简单一句话概括就是sqoop是用来各个数据库之间进行数据迁移使用的。Sqoop作为数据传输的桥梁,通过定义MapReduce的InPutFormat和OutPutFormat来对接源存储和目的存储。
2 基本原理
(1)整个Sqoop的迁移过程,都会对应着一个MapReduce作业,实际上只有Map阶段,没有reduce阶段,而迁移大致分为5个部分,如下所示。
- 「Initializer」:整个Sqoop迁移的初始化阶段,完成迁移前的准备工作,如连接数据源,创建临时表,添加依赖的jar包等。
- 「Partitioner」:源数据分片,根据作业并发数来决定源数据要切分多少片。
- 「Extractor」:开启extractor线程,内存中构造数据写入队列之中;
- 「Loader」:开启loader线程,从队列中读取数据并写入对应后端;
- 「Destroyer」:整个迁移的收尾工作,断开sqoop与数据源的连接,完成资源回收;
(2)流程解