记录:sqoop2的安装与使用
前提:已部署好Hadoop集群与mysql
版本说明: hadoop-2.6.0-cdh5.7.0、mysql Ver 14.14 Distrib 5.7.24
下载sqoop2
注意:一定要下载相对应Hadoop版本的sqoop,不然会出各种错误(亲身体会)
版本:sqoop2-1.99.5-cdh5.7.0
下载地址:http://archive.cloudera.com/cdh5/cdh/5/sqoop2-1.99.5-cdh5.7.0.tar.gz
安装
- 解压
2.配置环境变量,添加:
export SQOOP_HOME=sqoop解压路径
export PATH=SQOOP_HOME/bin
export CATALINA_BASE=/home/hadoop/app/sqoop/server
export LOGDIR=$SQOOP_HOME/logs/这个logs目录可能需要新建
3.修改sqoop的配置文件
vim server/conf/sqoop.properties
:
将org.apache.sqoop.submission.engine.mapreduce.configuration.directory后面hadoop的位置修改为自己Hadoop路径
vim server/conf/catalina.properties
:
将common.loader行后的/usr/lib/hadoop/lib/.jar改成自己的hadoop jar 包目录
注意: 在修改common.loader的过程中,不能换行,路径中不能有空格。
4.复制mysql-connector-java-5.1.21.jar(mysql驱动)到$SQOOP_HOME/server/lib/下
部署完毕
遇到问题:曾因为安装的版本不一致,启动时会报错
使用
服务器端: 启动/停止服务
bin/sqoop.sh server start / stop
启动成功标示:
客户端:
1.启动: $SQOOP_HOME/bin/sqoop.sh client
2.连接服务器端:set server --host IP地址 --port 12000(默认) --webapp sqoop(仓库)
判断是否成功
:使用show version -all正确的显示,就说明连接上了Sqoop2的服务器
常用操作:
设置提示报错:set option --name verbose --value true
查看连接器:show connector
查看link: show link
查看job: show job
Mysql导到Hdfs
1.使用连接器,创建mysql 连接
create link --cid 1(mysql连接器ID)
会提示需要输入:
Name:mysql
(link名)
Link configuration
JDBC Driver Class:com.mysql.jdbc.Driver
JDBC Connection String:jdbc:mysql://IP地址:3306/数据库名
Username: root(用户)
Password: **********(密码)
JDBC Connection Properties:
There are currently 0 values in the map:
entry#
若成功则会提示:
New link was successfully created with validation status OK and persistent id xxx
2.创建Hdfs link
create link -cid 3
Creating link for connector with id 3
Please fill following values to create new link object
Name: hdfs_test
Link configuration
HDFS URI:hdfs://IP地址:8020(fs.defaultFS 的值)/sqoop_dir
New link was successfully created with validation status OK and persistent id 3
3.创建job:
create job --f 2(输入link) --t 3(输出link)
会提示需要输入:
Name: mysql_tohdfs
From database configuration
Schema name: sqoop_test(数据库)
Table name: sqoop_test(表名,与Table SQL statement二选一)
Table SQL statement: # SQL语句(选填)
Table column names:
Partition column name: (主键,不填时会报错)
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 ( 指定在HDFS中的数据文件是什么文件格式 )
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: (指定的custom压缩算法)
Output directory: /sqoop_dir/test(指定存储在HDFS文件系统中的路径,这里最好指定一个存在的路径,或者存在但路劲下是空的,才能成功)
Throttling resources
Extractors:
Loaders:
若出现successful则证明已经成功创建
New job was successfully created with validation status OK and persistent id 1
4.启动job
start job --jid jobID