本文章只是简单介绍了sqoop应用
有空我会写一篇datax的使用,以及datax和sqoop的组件区别~
1、sqoop1 与 sqoop2 的区别
架构区别
sqoop1架构
sqoop2 架构
可以看出sqoop2多了一层服务层
一般项目实际应用中使用的是sqoop1版本!
sqoop下载地址(appach版本)
Index of /dist/sqoophttp://archive.apache.org/dist/sqoop/
2、sqoop工作原理
将导入或导出命令翻译成mapreduce程序来实现
在翻译出的mapreduce中主要是对inputformat和outputformat进行定制
其本质就是一个mapredcue程序!
3、安装
解压文件,修改配置文件
cd /export/servers/sqoop-1.4.6-cdh5.14.0/conf/
cp sqoop-env-template.sh sqoop-env.sh
vim sqoop-env.sh
export HADOOP_COMMON_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
export HADOOP_MAPRED_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
export HIVE_HOME=/export/servers/hive-1.1.0-cdh5.14.0
加入额外依赖包
sqoop的使用需要添加两个额外的依赖包,一个是mysql的驱动包,一个是java-json的的依赖包,不然就会报错
mysql-connector-java-5.1.40.jar
java-json.jar
将这个两个jar包添加到sqoop的lib目录下
验证启动
cd /export/servers/sqoop-1.4.6-cdh5.14.0
bin/sqoop-version
4、数据导入导出示例
导入数据库表到HDFS
bin/sqoop import --connect jdbc:mysql://192.168.1.101:3306/userdb --password admin --username root --table emp --m 1
导出数据至mysql
bin/sqoop export \
--connect jdbc:mysql://172.16.43.67:3306/userdb \
--username root --password admin \
--table emp_out \
--export-dir /sqoop/emp \
--input-fields-terminated-by ","