sqoop是一个把关系型数据库数据抽向Hadoop的工具。同时,也支持将hive、pig等查询的结果导入关系型数据库中存储。个人觉得用一个生态后就实用同一个系列的产品,比如选择了cloudera最好就用它的生态下的东西。
wget http://archive.cloudera.com/cdh5/cdh/5/sqoop2-1.99.5-cdh5.8.0.tar.gz
2、解压sqoop安装文件
tar -zxvf sqoop2-1.99.5-cdh5.8.0.tar.gz
3.修改sqoop——server关于hadoop共享jar的引用,这里可以指定环境变量,在1.99.7后直接是一个HADOOP_HOME或者是拆分后的
vi server/conf/catalina.properties
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/../lib/*.jar,/data/hdp/2.3.6.0-3796/hadoop/*.jar,/data/hdp/2.3.6.0-3796/hadoop/lib/*.jar,/data/hdp/2.3.6.0-3796/hadoop-hdfs/*.jar,/data/hdp/2.3.6.0-3796/hadoop-hdfs/lib/*.jar,/data/hdp/2.3.6.0-3796/hadoop-mapreduce/*.jar,/data/hdp/2.3.6.0-3796/hadoop-mapreduce/lib/*.jar,/data/hdp/2.3.6.0-3796/hadoop-yarn/*.jar,/data/hdp/2.3.6.0-3796/hadoop-yarn/lib/*.jar
这里对应到自己的hadoop的配置的lib
4.修改mapreduce.configuration.directory对应到你的hadoop配置文件目录
如:/home/liuyazhuang/hadoop/hadoop/etc/hadoop
vi server/conf/sqoop.properties
同时如果需要修改日志的输出路径自己可以
5.启动sqoop没有配置环境变量的话找到对应的bin路径测试一启动下
./sqoop.sh server start
6.导入mysql数据库
cp mysql-connector-java-5.1.6.jar /data/hdp/2.3.6.0-3796/sqoop2/sqoop2-1.99.5-cdh5.8.2/server/lib
重新启动sqoop进入sqoop的client端
./sqoop.sh client
测试一下http://123.59.135.103:12000/sqoop/version 是否可以访问
为客户端配置服务器
set server --host node01.soyoung.com --port 12000 --webapp sqoop
### 导入mysql数据库【注意这里版本1和2配置不同】
1.创建sqoop对应的mysql数据库
create database sqoop grant all privileges on sqoop to sqoop01@'node01.soyoung.com' identified by 'sqoop09876';
1.创建hadoop连接
create link --cid 3 Name: hdfs_link HDFS URI: hdfs://name-ha:8020
2.创建mysql连接
sqoop:000> create link --cid 1 Name: sqoop01 JDBC Driver Class: com.mysql.jdbc.Driver JDBC Connection String: jdbc:mysql://node01.soyoung.com:3306/sqoop username:sqoop01 password:sqoop09876 出现entry#protocol -tcp 直接回车
show link
+----+-----------+--------------+------------------------+---------+
| Id | Name | Connector Id | Connector Name | Enabled |
+----+-----------+--------------+------------------------+---------+
| 1 | mysql_link | 1 | generic-jdbc-connector | true |
| 2 | hadoop | 2 | kite-connector | true |
| 3 | hdfs_link | 3 | hdfs-connector | true |
+----+-----------+--------------+------------------------+---------+
3.建立job(mysql到hdfs)
create job -f 1 -t 3 并填写对应的值 show job start job --jid 1
4.建立job(hdfs到mysql)
create job -f 3 -t 1 填写对应需要的值 show job status job -name mysql_to_hdfs_002【1.99.7版本】 start job --jid 3
sqoop1将hive上的数据带入到mysql[这是sqoop1的使用,看到这个比较熟悉2这里已经没有]
这里执行时下sqoop1上执行的,所以在sqoop2上已经没有该命令了.
sqoop export jdbc:mysql://node01.soyoung.com/sqoop --username sqoop01 --password sqoop09876 --table l_user --hcatalog-database tmp --hcatalog-table l_employee
7.配置sqoop到hue:
./sqoop.sh client
执行show version
sqoop就配置完成了,具体在hue上使用需要修改hue的hue.ini文件。等张哥来了协调重启hue。
启动hue,hue依赖于apache。 hue supervisor
8.使用sqoop客户端:
./sqoop.sh client
执行
show version
sqoop就配置完成了,具体在hue上使用需要修改hue的hue.ini文件。
相关文档: http://archive.cloudera.com/cdh5/cdh/5/sqoop2-1.99.5-cdh5.8.0/CommandLineClient.html
http://gethue.com/hadoop-tutorials-series-ii-8-how-to-transfer-data/#