Sqoop2基础

安装Sqoop2

通过Cloudera Manager的Add a service来安装Sqoop2 Server即可,不需要安装client。



试用Sqoop

不需要下载client,启动Sqoop2 server之后,直接在CDH中的某个节点上运行命令sqoop2即可

Sqoop2基础_第1张图片




配置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)

摘自Sqoop 5 Minutes Demo

显示所有的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>
Sqoop2基础_第2张图片



从Resource Manager中可以看到该MapReduce Job的执行


也可以通过命令status来查看Job的运行状态

status job -j <job-id>



查看该Job的结果

可以看到,该Job运行完成后,目标数据库中的数据已经被写入到了HDFS中了。



Kill Job

当某个job在运行时,可以将其kill

stop job -j <job-id>

你可能感兴趣的:(sqoop)