(一)sqoop介绍
Sqoop是Apache旗下的一款开源工具,该项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,并在2013年,独立成为Apache的一个顶级开源项目。
Apache Sqoop是在Hadoop生态体系和RDBMS体系之间传送数据的一种工具。来自于Apache软件基金会提供。
Sqoop工作机制是将导入或导出命令翻译成mapreduce程序来实现。在翻译出的mapreduce中主要是对inputformat和outputformat进行定制。
- Hadoop生态系统包括:HDFS、Hive、Hbase等
- RDBMS体系包括:Mysql、Oracle、DB2等
Sqoop可以理解为:“SQL 到 Hadoop 和 Hadoop 到SQL”。
站在Apache立场看待数据流转问题,可以分为数据的导入导出:
- Import:数据导入。RDBMS----->Hadoop
- Export:数据导出。Hadoop---->RDBMS
目前Sqoop主要分为Sqoop1和Sqoop2两个版本,其中,版本号为1.4.x属于Sqoop1,而版本号为1.99.x的属于Sqoop2。这两个版本开发时的定位方向不同,体系结构具有很大的差异,因此它们之间互不兼容。可惜的是Apache Sqoop于2021年6月正式退役,进入Apache Attic!
- Sqoop1功能结构简单,部署方便,提供命令行操作方式,主要适用于系统服务管理人员进行简单的数据迁移操作;
- Sqoop2功能完善、操作简便,同时支持多种访问模式(命令行操作、Web访问、Rest API),引入角色安全机制增加安全性等多种优点,但是结构复杂,配置部署更加繁琐。
(二)sqoop安装
安装sqoop的前提是已经具备java和hadoop的环境。
最新稳定版: 1.4.6
配置文件修改:
cd /home/offcn/apps/sqoop-1.4.6/conf
mv sqoop-env-template.sh sqoop-env.sh
vim sqoop-env.sh
export HADOOP_COMMON_HOME=/home/offcn/apps/hadoop-3.2.1
export HADOOP_MAPRED_HOME=/home/offcn/apps/hadoop-3.2.1
export HBASE_HOME=/home/offcn/apps/hbase-2.2.4
export HIVE_HOME=/home/offcn/apps/hive-3.1.2
export ZOOCFGDIR=/home/offcn/apps/zookeeper-3.5.7
加入mysql的jdbc驱动包:
cp /home/offcn/apps/hive-3.1.2/lib/mysql-connector-java-5.1.48.jar /home/offcn/apps/sqoop-1.4.6/lib/
配置环境变量:
sudo vim /etc/profile
#Sqoop-1.4.6
export SQOOP_HOME=/home/offcn/apps/sqoop-1.4.6
export PATH=$PATH:$SQOOP_HOME/bin
source /etc/profile
验证启动
sqoop list-databases \
--connect jdbc:mysql://node-1:3306/ \
--username root --password root
本命令会列出所有mysql的数据库。到这里,整个Sqoop安装工作完成。