Sqoop2基础

来源:互联网 发布:python 2.7 sorted 编辑:程序博客网 时间:2024/05/30 04:31

安装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)


摘自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>
这里写图片描述



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

这里写图片描述


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

status job -j <job-id>

这里写图片描述



查看该Job的结果

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

这里写图片描述



Kill Job

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

stop job -j <job-id>
这里写图片描述

0 0
原创粉丝点击