- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Sqoop开发者指南Sqoop开发者指南
Sqoop开发者指南
目 录
1 引言 1
2 支持的发行版 1
3 Sqoop发行版 1
4 先决条件 1
5 Sqoop源码 2
6 开发者API参考 2
6.1 外部API 2
6.2 扩展API 2
6.2.1 的 2
6.3 Sqoop内部实现 2
6.3.1 2
6.3.2 的 2
6.3.3 Hadoop大数据处理技术架构 3
引言
如果你是一个开发者或应用程序的程序员打算修改的Sqoop或,你应该阅读此。以下各节描述的每一个API,内部API支持其他数据库的API。
Apache的Sqoop是Apache软件基金会的一个开放源码的软件产品。Sqoop在/repos/asf/sqoop/trunk。
必威体育精装版版本的源代码
An issue tracker
包含WIKI的Sqoop文档
先决条件
Sqoop开发需要如下先决知识:
JAVA开发:
&熟练掌握JDBC
&熟练掌握Hadoop的API(包括新的MapReduce 0.2版本以上的API)
关系型数据库和SQL
本文档假定您使用的是Linux或类似Linux的环境。如果你使用的是Windows,您可能能够使用cygwin完成以下任务。如果你使用的是Mac OS X,你应该看到一些兼容性错误(如果有的话)。 Sqoop主要在Linux上进行测试。您可以获取Sqoop的源代码:/repos/asf/sqoop/trunk
Sqoop源代码被保存在一个Git”仓库COMPILING.txt”文件提供。
开发者API参考
本章节的内容提供给那些需要整合或者扩展Sqoop的应用程序开发者。
下面三个部分都是为了接下来的用例而写的:
使用Sqoop生成的类和公共类
Sqoop扩展(即,于更多数据库交互的额外的ConnManager的实现)
修改Sqoop内部实现
每一部分逐步深入的描述Sqoop系统。
外部API
Sqoop在执行的时候自动生成将关系型数据库里表导入(import)到HDFS系统中的java类,这个类包含导入表的每一列的成员字段,这个类的一个实例保存导入表的每一行(每一行为一个实例),这个类通过Hadoop实现序列化API,命名为Writable 和 DBWritable接口。并且包含其他比较方便的方法:
parse():可以解析带分隔符文本的方法。
toString():可以保留用户选择的分隔符的方法
确保自动生成的类中的所有方法都存在于下面的抽象类中:
com.cloudera.sqoop.lib.SqoopRecord.
SqoopRecord实例可能依赖于Sqoop的公共API。com.cloudera.sqoop.lib包中。这些被简要的描述如下。Sqoop客户端并不需要直接与这些类发生关系,尽管由Sqoop生成的类依赖于他们。因此,这些AOP被认为是公开的,并且需要继续优化的。
RecordParser类将解析文本文件中的一行到一个字段列表中,使用可控的分隔符和引号字符。
静态类FieldFormatter提供了一个被用于SqoopRecord.toString()的方法,该方法处理引用和转义字符。
封装ResultSet、PreparedStatement objects、SqoopRecords之间的数据是通过JdbcWritableBridge实现的。
BigDecimalSerializer在Writable接口之上包含了一组对BigDecimal(小数)对象序列化的方法。
扩展API
HBase的序列化扩展
本章节包含了API和最基本的用于扩展Sqoop的类,这些类使得Sqoop可以与更多的数据库提供商做接口。
Sqoop使用JDBC和DataDrivenDBInputFormat的从数据库中读取ConnManager API (com.cloudera.sqoop.manager.ConnMananger)。
ConnManager是一个静态类,这个类定义了数据库本身相关作用的方法。ConnManager类的大多数实现都继承静态类SqlManager (com.cloudera.sqoop.manager.SqlManager),SqlManager使用标准的SQL执行大部分的动作。所有的子类需要实现getConnection()方案,用于获取实际的JDBC数据库链接,子类可以重写其他所有方法。SqlManager类本身暴露了一个受保护的API,使开发人员可以有选择地重写行为。getColNamesQuery()方法允许使用getColNames()的进行修改SQL查询,而不需要重写大多数的getColNames()方法。
ConnManager的实现通过Sqoop特定的类(SqoopOp
您可能关注的文档
- RL086绩效考核手册RL086绩效考核手册.doc
- RM-QM-2015质量管理手册RM-QM-2015质量管理手册.doc
- QC成果 提高CBM自稳型高强薄壁管混凝土空心楼盖施工质量QC成果 提高CBM自稳型高强薄壁管混凝土空心楼盖施工质量.doc
- RS一体化管理手册RS一体化管理手册.doc
- Robot Framework框架Robot Framework框架.docx
- Ry-GY2019十门更衣柜和ZG-ZW024图书超市密码寄包柜价格Ry-GY2019十门更衣柜和ZG-ZW024图书超市密码寄包柜价格.docx
- Rytqqk毕业答辩PPT 制作及开场白模板Rytqqk毕业答辩PPT 制作及开场白模板.doc
- Ry-GY2019十门更衣柜和寄物柜价格Ry-GY2019十门更衣柜和寄物柜价格.docx
- S01文件和记录控制程序(改)S01S01文件和记录控制程序(改)S01.doc
- s1240基础培训-s12系统介绍s1240基础培训-s12系统介绍.doc
文档评论(0)