SQOOP源码浅析.docx
- 文档编号:26898027
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:11
- 大小:340.08KB
SQOOP源码浅析.docx
《SQOOP源码浅析.docx》由会员分享,可在线阅读,更多相关《SQOOP源码浅析.docx(11页珍藏版)》请在冰豆网上搜索。
SQOOP源码浅析
SQOOP大数据源码浅析
在数据处理的生态群里sqoop组件,占据了举足轻重地位。
特别是将Hadoop和关系型数据库中的数据相互转移的sqoop是不二之选的工具。
Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。
由于目前Sqoop1.4.6-CDH版本,把关系数据库mysql数据迁移到hive中,是不支持多级分区的。
于是开启了两天魔改源码的节奏--
源码地址:
sqoop项目活跃度从客观上看还是比较活跃的。
毕竟属于Apache开源顶级项目。
OK开启我的源码之路:
先整到本地idea,默认是maven
找到生成hive核心类TableDefWriter.java
sqoop传递参数如下所示都是存储在SqoopOptions中
分区信息如下:
生成创建hive表分区字符串拼接如下:
做了如下改造:
生成创建hive表分区字符串拼接如下:
分区信息如下:
数据库导入工具类——ImportTool
org.apache.sqoop.tool.ImportTool是sqoop实现数据库导入功能的工具类。
ImportTool最核心的两个属性
protectedConnManagermanager;
privateCodeGenToolcodeGenerator;
ImportTool的run方法
·在run方法中执行init(options)时,会根据命令行参数,利用org.apache.sqoop.ConnFactory生成对应的ConnManager对象。
·在importTable方法中,codeGenerator会将表结构对应的java类写入jar文件。
这个jar文件和其他选项会构造出一个ImportJobContext对象。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQOOP 源码 浅析