What
将关系数据库 oracle ,mysql,ostgresql 和hadoop 数据进行转换的工具
版本
- sqoop1 :1.4.x 使用最多
- sqoop2: 1.99.x 同类产品 DataX 阿里顶级数据交换工具
Where
http://sqoop.apache.org
Why
How
-
下载
- `cd /opt/soft/``
wget http://mirrors.hust.edu.cn/apache/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
mv /opt/soft/sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop-1.4.6
-
修改配置文件
vi $SQOOP_HOME/bin/configure-sqoop
去掉不相干的环境变量检查cd conf
mv sqoop-evn-template.sh sqoop-env.sh
vim sqoop-env.sh
-
修改环境变量
vi ~/.base_profile
1
2export SQOOP_HOME=/opt/soft/sqoop-1.4.6
PATH=$PATH:$SQOOP_HOME/bin -
添加数据库驱动包
cp mysql-connecter-jaa-5.1.10.jar $SQOOP_HOME/lib/
-
测试
sqoop version
1
2sqoop-list-databases -connect jdbc:mysql://sj-node1:3306/ -username root -password 123456
sqoop-list-tables -connect jdbc:mysql://sj-node1:3306/mysql -username root -password 123456
启动hdfs集群,和yarn集群
导入
-
导入hdfs
1
sqoop import --connect jdbc:mysql://sj-node1:3306/test --username root --password 123456 --table testsqoop -m1 --target-dir hdfs://appcity/sqooptest
-
导入hive
1
2
3sqoop import --connect jdbc:mysql://sj-node1:3306/test \
--username root --password 123456 \
--table testsqoop -m 1 --hive-import -
导入hbase 启动hbase
start-hbase.sh
1
2
3
4sqoop import --connect jdbc:mysql://sj-node1:3306/test \
--username root --password 123456 --table testsqoop -m1\
--hbase-table testsqoop --column-family cf1 --hbase-row-key name\
--hbase-create-table在sqoop自动创建了表testsqoop
导出
-
hdfs导出mysql,hdfs上文件如果默认以逗号
,
分割就无需指定分隔符1
2sqoop export --connect jdbc:mysql://sj-node1:3306/test \
--username root --password 123456 --table testsqoop --export-dir /sqooptest/part-m-00000 -
hive导出mysql
sqoop export --connect jdbc:mysql://sj-node1:3306/test \ --username root --password 123456 --table testsqoop \ --export-dir /user/hive_local/warehouse/testsqoop/part-m-00000 \ --input-fields-terminated-by '\001'