一、创建一个mysql的link
MySQL链接使用的是JDBC,必须有对应的驱动文件jar,还得有对应的访问权限,请确保能在server端访问MySQL。确保mysql的jar包已经导入到${SQOOP_HOME}/server/lib/目录下。
create link -c generic-jdbc-connector
这时候就会出现交互会话,提示你输入各项参数:
【Link configuration】
Name:标示这个link的字符串。比如:mysql-link-1
Driver Class:指定jdbc启动时所需要加载的driver类:com.mysql.jdbc.Driver。
Connection String:jdbc:mysql://localhost/test_db,test_db是本例的数据库名称。
Username:链接数据库的用户名,也就是mysql客户端传入的-u参数。本例是test。
Password:链接数据库的用户密码。
FetchSize:这个属性并没有在官方文档上描述,我也不知道说的是什么,直接回车了,使用的默认值。
填写完上面几项,将提供一个可以输入JDBC属性的hash,提示符是entry#,这时候可以手动指定很多JDBC属性的值。
本例只覆盖了一个protocol值为tcp:protocol=tcp
再按回车,之后会再定义一下SQL方言。各个数据库系统提供商们对SQL语言标准的理解和实现各有不同,
于是各有各的一些细微差别。以下属性就是用于指定这些区别的。至此,就可以完成这个link的创建。命令行提示符也会还原为sqoop:000>
例子:
sqoop:000> create link -connector generic-jdbc-connector
Creating link for connector with name generic-jdbc-connector
Please fill following values to create new link object
Name: mysql-link
Database connection
Driver class: com.mysql.jdbc.Driver
Connection String: jdbc:mysql://192.168.200.250:3306/testdb
Username: root
Password: *******
Fetch Size:
Connection Properties:
There are currently 0 values in the map:
entry# protocol=tcp
There are currently 1 values in the map:
protocol = tcp
entry#
SQL Dialect
Identifier enclose: 注意 这里不能直接回车!要打一个空格符号!因为如果不打,查询mysql表的时候会在表上加上“”,导致查询出错!
New link was successfully created with validation status OK and name mysql-link
sqoop:000> show link
+------------+------------------------+---------+
| Name | Connector Name | Enabled |
+------------+------------------------+---------+
| mysql-link | generic-jdbc-connector | true |
+------------+------------------------+---------+
二、创建一个hdfs的link
create link -connector hdfs-connector
hdfs的参数只有一个Name和一个HDFS URI,Name同上。URI是hadoop中配置hdfs-site.xml中的属性fs.defaultFS的值。本例为hdfs://localhost:9000,回车后没有什么错误就会显示successful信息。
例子:
sqoop:000> create link -connector hdfs-connector
Creating link for connector with name hdfs-connector
Please fill following values to create new link object
Name: hdfs-link
HDFS cluster
URI: hdfs://hadoop-allinone-200-123.wdcloud.locl:9000
Conf directory:
Additional configs::
There are currently 0 values in the map:
entry#
New li