Sqoop2五分钟入门

/ SqoopHadoop / 没有评论 / 42浏览

介绍Sqoop2安装,以及对官网5分钟入门的实践。

环境

ch5.14.2

hadoop环境

这里默认你安装好了hadoop环境,我安装的伪集群。

伪集群

搭建sqoop2

官网安装教程

下载并解压

下载sqoop2-1.99.5-cdh5.14.2.tar.gz,并解压到/usr/local/sqoop目录。

wget http://archive.cloudera.com/cdh5/cdh/5/sqoop2-1.99.5-cdh5.14.2.tar.gz
tar -xzvf sqoop2-1.99.5-cdh5.14.2.tar.gz
mv sqoop2-1.99.5-cdh5.14.2.tar.gz /usr/local/sqoop
cd /usr/local/sqoop

配置环境变量

配置sqoop环境变量,vi ~/.bash_profile

export SQOOP_HOME=/usr/local/sqoop
export PATH=$PATH:$SQOOP_HOME/bin

环境变量生效,source ~/.bash_profile

修改Sqoop2配置文件

修改Sqoop2目录下的/server/conf/catalina.properties的hadoop相关配置,即common.loader

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/../lib/*.jar,/usr/local/hadoop/share/hadoop/common/*.jar,/usr/local/hadoop/share/hadoop/common/lib/*.jar,/usr/local/hadoop/share/hadoop/hdfs/*.jar,/usr/local/hadoop/share/hadoop/hdfs/lib/*.jar,/usr/local/hadoop/share/hadoop/mapreduce/*.jar,/usr/local/hadoop/share/hadoop/mapreduce/lib/*.jar,/usr/local/hadoop/share/hadoop/tools/*.jar,/usr/local/hadoop/share/hadoop/tools/lib/*.jar,/usr/local/hadoop/share/hadoop/yarn/*.jar,/usr/local/hadoop/share/hadoop/yarn/lib/*.jar

配置Server

修改server/config/sqoop.properties

org.apache.sqoop.submission.engine.mapreduce.configuration.director=/usr/local/hadoop/etc/hadoop

启动

启动服务端:sqoop.sh server start 启动客户端:sqoop.sh client

启动

测试是否安装正确:show connector

test

mysql数据导入到hdfs

主要是按照官网五分钟入门

驱动

我们需要把mysql-connector-java包放入Sqoop2的lib目录下(没有就建立一个),并重启。

创建link

generic-jdbc-connector,创建一个link:create link -c 1

jdbc-connector

其中参数-c后面为generic-jdbc-connector的id

hdfs-connector,再创建一个link: create link -c 3

hdfs-connector

查看link

查看link:show link --all

查看link

其中第3、4个才是正确的,前面两次是我自己输入错了。

创建job

我们可以使用这两个id为3、4的link关联From和To,即把mysql的数据导入到hdfs。

Creating job for links with from id 3 and to id 4
Please fill following values to create new job object
Name: mysql-to-hdfs

From database configuration

Schema name: test --数据库名
Table name: person
Table SQL statement: 
Table column names: 
Partition column name: id
Null value allowed for the partition column: 
Boundary query: 

ToJob configuration

Override null value: 
Null value: 
Output format: 
  0 : TEXT_FILE
  1 : SEQUENCE_FILE
Choose: 0
Compression format: 
  0 : NONE
  1 : DEFAULT
  2 : DEFLATE
  3 : GZIP
  4 : BZIP2
  5 : LZO
  6 : LZ4
  7 : SNAPPY
  8 : CUSTOM
Choose: 0
Custom compression format: 
Output directory: /sqoop --hdfs存储目录

Throttling resources

Extractors: 2 --提取器
Loaders: 2 --加载器
New job was successfully created with validation status OK  and persistent id 1

查看job

查看:show job

show job

启动job

启动:start job -j 1

start job

查看job状态

查看job执行状态:status job -j 1

查看job执行状态

发现错了,经排查,发现hdfs地址写错了,即创建hdfs-link时hdfs://localhost:8020/应该为hdfs://sqoop0:9000

重新来一遍后,发现还是错误。

成功

错误信息: 错

原来是没有启用hadoop的job history,配置后搞定。

另外,可以在启动job时查看状态: start job -j 1 -s

停止job: stop job -j 1

查看hdfs数据

查看hdfs数据: hdfs dfs -ls /sqoop

查看hdfs数据

发现生成了两个文件,其中/sqoop/f8c62c13-2c64-4c5e-96b9-1aec34b26912.txt中有内容,下面查看里面的内容:

查看内容