maxhello 2016-09-30
首先知道sqoop是做什么的
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 直接回车
showlink
+----+-----------+--------------+------------------------+---------+
|Id|Name|ConnectorId|ConnectorName|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
执行showversion
sqoop就配置完成了,具体在hue上使用需要修改hue的hue.ini文件。等张哥来了协调重启hue。
启动hue,hue依赖于apache。huesupervisor
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/#