Sqoop 简介与安装
一、Sqoop 简介
Sqoop 是一个常用的数据迁移工具,主要用于在不同存储系统之间实现数据的导入与导出:
导入数据:从 MySQL,Oracle 等关系型数据库中导入数据到 HDFS、Hive、HBase 等分布式文件存储系统中;
导出数据:从 分布式文件系统中导出数据到关系数据库中。
其原理是将执行命令转化成 MapReduce 作业来实现数据的迁移,如下图:
二、安装
版本选择:目前 Sqoop 有 Sqoop 1 和 Sqoop 2 两个版本,但是截至到目前,官方并不推荐使用 Sqoop 2,因为其与 Sqoop 1 并不兼容,且功能还没有完善,所以这里优先推荐使用 Sqoop 1。
2.1 下载并解压
下载所需版本的 Sqoop ,这里我下载的是 CDH
版本的 Sqoop 。下载地址为:http://archive.cloudera.com/cdh5/cdh/5/
1 | 下载后进行解压 |
2.2 配置环境变量
1 | vim /etc/profile |
添加环境变量:
1 | export SQOOP_HOME=/usr/app/sqoop-1.4.6-cdh5.15.2 |
使得配置的环境变量立即生效:
1 | source /etc/profile |
2.3 修改配置
进入安装目录下的 conf/
目录,拷贝 Sqoop 的环境配置模板 sqoop-env.sh.template
1 | cp sqoop-env-template.sh sqoop-env.sh |
修改 sqoop-env.sh
,内容如下 (以下配置中 HADOOP_COMMON_HOME
和 HADOOP_MAPRED_HOME
是必选的,其他的是可选的):
1 | Set Hadoop-specific environment variables here. |
2.4 拷贝数据库驱动
将 MySQL 驱动包拷贝到 Sqoop 安装目录的 lib
目录下, 驱动包的下载地址为 https://dev.mysql.com/downloads/connector/j/ 。在本仓库的resources 目录下我也上传了一份,有需要的话可以自行下载。
2.5 验证
由于已经将 sqoop 的 bin
目录配置到环境变量,直接使用以下命令验证是否配置成功:
1 | sqoop version |
出现对应的版本信息则代表配置成功:
这里出现的两个 Warning
警告是因为我们本身就没有用到 HCatalog
和 Accumulo
,忽略即可。Sqoop 在启动时会去检查环境变量中是否有配置这些软件,如果想去除这些警告,可以修改 bin/configure-sqoop
,注释掉不必要的检查。
1 | Check: If we can't find our dependencies, give up here. |