Sqoop Java Client API 使用指南
简介
Sqoop是一个在Hadoop和关系型数据库之间被用来传输数据的工具,官网地址,当前最新版本是2.0,本文根据官网文档,基于1.99.7版本,简单介绍其Java Client API使用。接下来要介绍的所有方法都在sqoop源码中的SqoopClient类中被打包。
迁移流程
sqoop的迁移流程简单来说就是将源端连接器的数据通过sqoop迁移到目的端,这个数据可能是mysql的一张表,也可能是hdfs上一个文件。具体来说可分为以下三步:
根据sqoop指定的connector name,分别创建源端(From)和目的端(To)对应的Link Object;
根据From和To连接器的名字,创建一个sqoop作业;
根据作业名,启动作业。
开发指南
本文主要介绍API开发指南,已假定你已准备好jdk环境,maven环境,以及sqoop server。
1. 设置 Project Dependencies
org.apache.sqoop
sqoop-client
${requestedVersion}
2. 初始化
根据默认的url初始化一个SqoopClient对象
String url = "http://localhost:12000/sqoop/";
SqoopClient client = new SqoopClient(url);
如果想要修改url可调用SqoopClient的setServerUrl方法。
3. 连接器
连接器(Connectors)提供了一个可以与数据源交互的平台,一个连接器可以有一个或者多个链接(Link)去连接指定的数据源,如mysql,hive等。因此,Sqoop的迁移过程就可以看做是利用From端的Link读取数据,在由To端的Link写入数据。SqoopClient中提供了创建、修改和删除Link的接口。用户可以根据自己需要去使用。
下面将通过代码简单来介绍这个过程
1) 根据Connector name创建Link,
MLink link = Client.createLink("connectorName");
link.setName("m