前言:
虽然Sqoop已经在2021年6月退休进入Attic(已经停止维护和升级),但是目前的使用程度还是比较高。支持同类型功能的软件有NiFi、Flink、Spark、Talend、StreamSets等。
Sqoop 主要用于在 Hadoop 和关系数据库或大型机器之间传输数据,可以使用 Sqoop工具将数据从关系数据库管理系统导入(import)到 Hadoop 分布式文件系统中,或者将Hadoop 中的数据转换导出(export)到关系数据库管理系统,其功能如图所示。
目前Sqoop主要分为Sqoop1和Sqoop2两个版本,其中版本1.99.x是属于Sqoop2,这两个版本开发时的定位方向不同,体系结构具有很大的差异,因此它们之间互不兼容。
Sqoop1功能结构简单,部署方便,提供命令行操作方式,主要适用于系统服务管理人员进行简单的数据迁移操作;Sqoop 2 功能完善、操作简便,同时支持多种访问模式(命令行操作、Web访间和 Rest API),引人角色安全机制增加安全性等多种优点,但是结构复杂,配置部署更加烦琐。本文讲解部署Sqoop1版本。
版本选择
Sqoop提供两个主要版本:
- 1.4.x:可以用于生产环境,最后的版本是1.4.7
- 1.9.77:Sqoop2并不与1.4.x版本兼容,不适用于生产环境
一、Sqoop安装
1.下载安装包
#将压缩包下载到指定文件夹
wget -P /home/export/software/ https://archive.apache.org/dist/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
2.解压到指定目录
cd /export/software
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /export/servers/
3.创建软连接
ln -s sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop
二、Sqoop配置
1.进入sqoop目录下的conf文件夹下
#复制需要配置的文件
cp sqoop-env-template.sh sqoop-env.sh
#配置sqoop-env.sh(替换为自己相对应的路径)
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/export/servers/hadoop-3.3.5
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/export/servers/hadoop-3.3.5
#set the path to where bin/hbase is available
export HBASE_HOME=/export/servers/hbase-2.0.5
#Set the path to where bin/hive is available
export HIVE_HOME=/export/servers/apache-hive-3.1.2-bin
#Set the path for where zookeper config dir is
export ZOOCFGDIR=/export/servers/apache-zookeeper-3.5.7-bin
2.配置环境变量
export SQOOP_HOME=/export/servers/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
#执行以下命令使环境变量生效
source /etc/profile
3.下载mysql连接驱动
#如果没有下载驱动,请自行安装,下载后解压(版本可根据自己的调整)
wget -P /export/software https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-8.2.0-1.el7.noarch.rpm
#将驱动mysql-connector-j-8.0.33.jar复制到sqoop目录下的lib目录下
cp /export/servers/mysql/mysql-connector-j-8.0.33.jar /export/servers/sqoop/lib/
三、Sqoop效果测试
sqoop list-databases -connect jdbc:mysql://localhost:3306/ --username root --password mysql
上述指令能返回指定地址的mysql数据库信息,那么说明Sqoop配置完毕。