记录下SQOOP1.99.7的简单实用

SQOOP1.99.7 为什么叫做SQOOP2呢?

这时APACHE 官网的SQOOP2的DOC

http://sqoop.apache.org/docs/1.99.7/user/CommandLineClient.html#delete-link-function


因为最近可能要做一些hadoop hbase的实践,因为以前没有实际接触过,所以很懵逼,分布式的环境已经由公司的运维同事搭建好了,熟悉了之后,现在首要任务是将RDBMS关系型数据库中的一个数据量达到7000多万的单表数据导入到hbase中,不过通过查询,发现SQOOP2 已经不支持直接从RDBMS导入HBASE了,需要经过HDFS中专一下,SQOOP1.99.7是Apache目前最新的版本,开始了我的踩坑之路:

SQOOP1.99.7 有CLIENT端和SERVER端2个服务器,

1.首先启动SQOOP SERVER:

  1. bin/sqoop2-server start  
之后输入命令:jps


SqoopJettyServer:sqoop2的server进程,也就是我们需要的

NameNode,SecondaryNameNode:是hadoop namenode的进程,也许大家会问为什么没有datanode,因为datanode进程在另外2台hadoop机器上

HMaster:HBASE主进程

,这时我们再新开个shell窗口,用client连接server


输入命令:

set option --name verbose --value true 这个命令好像是为了多打印一些信息方便我们排查错误
之后要连接sqoop的server端,官网给的example是这样的:
 
  
set server --host sqoop2.company.net --port 80 --webapp sqoop
需要换成我们自己的:
sqoop:000> set server --host hadoop-node02 --port 12000 --webapp sqoop
Server is set successfully
sqoop:000> 
证明我们已经连接上,成功第一步!
sqoop导入数据到hdfs中,需要创建2个link,1个job,2个link是mysql的link,hdfs的link,job是从mysql到hdfs的link的job
首先我们查看sqoop支持的连接类型
第一步:建立mysql的link,输入命令: create link --connector generic-jdbc-connector,
generic-jdbc-connector就是上图connector中的name
回车之后,我们会看到

这个name是我们自己起的mysql的link的名称,这里我们输入MYSQLLINK2,官网上的例子是First Link,中间有空格,我也试过了,但是有空格是可以创建成功,但是删除的时候总报错,我也不清楚是怎么回事,


看到,我们的创建没有成功,这个时候会把你输入的信息都给你打印出来,之后让你每一项进行确认,我们如果确认就按回车下一项


发现我们的驱动包写错了,前面多写了个class:

我们改过之后,成功创建名字为MYSQLLINK2的link连接


至此,mysql的连接我们就创建成功了,

下面,我们创建hdfs的连接,同上

输入命令:create link --connector hdfs-connector

name我们输入:HDFSLINK2

URI:我们输入的是hadoop配置文件中的core-site.xml的fs.defaultFS节点,我这里是配置的hdfs://hadoop-node01:9000

Conf directory:我们输入的是hadoop的配置文件的目录,我这里输入的是:/usr/local/hadoop/etc/hadoop

创建成功!


至此,mysql的link和hdfs的link都已经创建成功,可以用show link -all 来查询所有的link信息

下面我们创建一个job来进行数据的传输




没有填写的都是选填的,以后琢磨吧,这样我们的job就创建成功了,

这个时候我们输入命令 show job可以看到job的信息


下面我们执行下job看看,

sqoop:000> start job --name testjob2



好吧执行成功了,我们去hadoop的hdfs文件中去查看下

你可能感兴趣的:(SQOOP2)