Sqoop 是Apache下一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传输,可以实现关系型数据库(例如 : MySQL ,Oracle ,Postgres等)与Hadoop的HDFS之间数据互相导入、导出。
概括起来:该层充当“搬运工”的角色,主要做两件事
1:负责外部数据(多是关系型库数据)导入到分布式文件系统(HDFS);
2:将大数据分析后的结果(HDFS)进行导出至关系型数据库表中。
Sqoop作为数据导入导出工具,只需要作为客户端在一台服务器上安装即可。
Sqoop命令接口接收客户端导入导出指令—>任务转化器负责将客户端指令转化为MR任务并进行优化,提交Yarn上运行,并进行监控—>MR任务负责DB和HDFS之间数据读写。
可见:Sqoop使得用户从MR编程中解脱出来,降低了实现DB与HDFS数据导入导出的难度,一切交由Sqoop代劳。
1:Sqoop目前有Sqoop1(sqoop1.4.X) 和Sqoop2(sqoop 1.99.X) 两个版本,如图:
Sqoop1安装配置和使用:
解压、重命名安装包:
tar -zxvf sqoop-1.4.6-cdh5.5.2.tar.gz
mv sqoop-1.4.6-cdh5.5.2 sqoop
配置环境变量:
vi etc/profile
保存配置:source /etc/profile
配置sqoop-env.sh
cd /opt/mysoft/sqoop/conf
mv sqoop-env-template.sh sqoop-env.sh
vi sqoop-env.sh
拷贝Mysql jar包到sqoop/lib
Mysql导入到HDFS:
导入全表:
sqoop import --connect jdbc:mysql://192.168.110.6:3306/pingdingshan --username root --password root --target-dir hd