2.2.2 Sqoop2 基本架构
主要组件
1.Sqoop Client
定义了用户使用Sqoop的方式,包括客户端命令行CLI和浏览器两种方式,浏览器允许用户直接通过Http方式完成Sqoop的管理和数据的导出
2.Sqoop Server
1)Connector:所有Connector的实现放置到Sqoop server端,且Connector被进一步抽象化和模块化,它的通用部分被抽取出来本身只关注数据解析和加载相关的功能,包括Partitioner、Extractor和Loader等主要模块,
Partitioner:决定如何对源数据进行分片(SqoopSplit),以便启动Map Task并行处理;
Extractor:将一个分片中的数据解析成一条条记录,并输出;
Loader:读取Extractor输出的数据,并以特定格式写入目标数据源中。
整个过程只需要一个MapReduce作业即可完成,Partitioner和Extractor在Map阶段完成,Loader在Reduce阶段完成。
2)Metadata:Sqoop中的元信息,包括可用的Connector列表,用户创建的作业和Link(实例化的一个Connector,以便创建作业时使用)等。元信息被存储在数据仓库中,默认使用轻量级数据库Apache Derby,用户也可根据需要替换成Mysql等其他数据库。
3)RESTful和HTTP Server:与客户端对接,影响客户端发出的RESTful请求和HTTP请求
Sqoop Server会根据用户创建的Sqoop Job生成一个MapReduce作业,提交到Hadoop集群中分布式执行。