安装Sqoop2
通过Cloudera Manager的Add a service
来安装Sqoop2 Server即可,不需要安装client。
试用Sqoop
不需要下载client,启动Sqoop2 server之后,直接在CDH中的某个节点上运行命令sqoop2
即可
配置Sqoop
JDBC Drivers
安装好Sqoop2之后,会发现Sqoop自带的JDBC driver只有一个
连接不同的数据库需要用到不同放入JDBC Driver,例如连接MySQL需要用mysql-jdbc-driver,连接Oracle需要用ojdbc。
如果想要额外的JDBC Driver需要自己下载并放入到Sqoop系统中去(这是Sqoop官网的原话)。Cloudera的Blog说:Sqoop also ships with specialized connectors for MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server, IBM DB2, and Netezza, so there is usually no need to download extra connectors
实际上,Sqoop自带的JDBC Driver就已经可以适用于大部分的数据库了,例如MySQL,不需要另外安装
使用Sqoop2(Interactive Way)
显示所有的connector
show connector -all
创建Connection Object
create connection -cid <connection-id>
创建Job Object (Export)
create job --xid <job-id> --type <job-type>
job-type可以为
import
或者export
这里,
Schema name
是数据库的名字,Table name
是要被导出的MySQL表的名字, 其他的可以先不填上面配置的Job的目的是:将MySQL的数据库
njzd
中的表product
中的全部内容以文本的形式import到HDFS的目录/user/tao/xt-data/exported/
中。
提交运行被创建的Job
start job -j <job-id>
从Resource Manager中可以看到该MapReduce Job的执行
也可以通过命令status来查看Job的运行状态
status job -j <job-id>
查看该Job的结果
可以看到,该Job运行完成后,目标数据库中的数据已经被写入到了HDFS中了。
Kill Job
当某个job在运行时,可以将其kill
stop job -j <job-id>