Sqoop 安装0.10.1
# Sqoop 安装
Sqoop 主要用于关系型数据库和 Hadoop 生态之间的数据导入导出。它不像 HDFS、YARN 那样有常驻服务进程,本篇安装的核心动作是把 SQOOP Client 分发到目标主机,并下发 sqoop-env、sqoop-site 等客户端配置。
我会把 Sqoop 放在 Hive 后面安装。原因很简单:真实使用 Sqoop 时,经常会把数据导入 HDFS 或 Hive 表;先确认 HDFS、YARN、Tez、Hive 都可用,后面做导入导出验证时会少很多干扰。
本次角色分配如下:
| 主机 | Sqoop 角色 |
|---|---|
hadoop1.test.com | SQOOP Client |
hadoop2.test.com | SQOOP Client |
hadoop3.test.com | SQOOP Client |
提示
Sqoop 是客户端型组件,安装完成后服务状态显示 已安装 是正常的。不要强行去找“运行中”的 Sqoop 进程。
# 1. 选择 Sqoop 服务
进入 服务与组件,点击 新增服务,勾选 Sqoop。

页面会提示依赖的 HDFS 已满足。这里我建议只勾选 Sqoop,不要把后面的 HBase、Kafka、Spark 一起打包安装,这样每个组件出问题时更容易定位。
# 2. 确认没有 Master 组件
Master 分配页会提示所选服务没有 Master 组件。

这一步直接下一步即可。Sqoop 不需要 NameNode、ResourceManager、HiveServer2 这类常驻管理角色。
# 3. 分配 Sqoop Client
Slave 与 Client 分配页里,Sqoop 没有 Slave,只需要分配 Client。

本次三台主机都安装 SQOOP Client:
| 组件 | 分配主机 |
|---|---|
SQOOP | hadoop1.test.com、hadoop2.test.com、hadoop3.test.com |
如果集群里只有固定的边缘节点会执行导入导出,也可以只把 Sqoop Client 放在边缘节点上。教程环境为了后面演示方便,三台都装。
# 4. 查看 Sqoop 配置
进入自定义配置页后,页面显示 待填写 0。

默认配置可以先保留。这里真正要关心的是两类路径:
| 配置方向 | 说明 |
|---|---|
| Hadoop / Hive 环境 | Sqoop 会读取 Hadoop、Hive 相关目录,用于导入到 HDFS 或 Hive。 |
| JDBC 驱动 | 前面已经准备过 MySQL / MariaDB JDBC 驱动,后面连接业务库时会用到。 |
如果生产环境要连接 Oracle、PostgreSQL、SQL Server 等数据库,需要提前把对应 JDBC Driver 放到 Ambari Server 可分发的位置,并在 Sqoop 配置里补上驱动项。
# 5. 确认安装清单
确认页里会看到 Sqoop 只有 Client 分配。

我会重点确认这几项:
| 检查项 | 本次结果 |
|---|---|
| 新增服务 | SQOOP |
| Master 分配 | 无 |
| Slave 分配 | 无 |
| Client 分配 | 三台主机都安装 SQOOP |
| 配置校验 | 必填项已填写 |
确认无误后点击 开始安装。如果集群已经开启 Kerberos,向导会要求提交 KDC 管理员凭据,本次继续使用 admin/[email protected] 和对应管理员密码。
# 6. 等待 Sqoop 安装完成
Sqoop 安装阶段会在三台主机上安装客户端包、生成配置并分发 Kerberos 相关凭据。它没有服务启动步骤,所以安装任务完成后会进入 已安装 状态。
安装过程中我主要看:
| 检查项 | 期望结果 |
|---|---|
SQOOP Client | 三台主机安装完成 |
| 失败任务 | 0 |
| 服务状态 | 已安装 |
如果安装任务提示找不到 JDBC 驱动,先回到前面的 MySQL 驱动与本地仓库准备步骤,确认 /usr/share/java/mysql-connector-java.jar 存在。
# 7. 回到服务列表确认状态
安装完成后回到 服务与组件 页面,Sqoop 会出现在 查询数据 分类下。

可以看到 Sqoop 只有一个 Client 组件,并且三台主机都已经分发完成。
进入 Sqoop 服务详情页,状态显示 已安装。

如果想在命令行做一个轻量确认,可以在安装了 Sqoop Client 的节点上执行:
sqoop version
正常会看到类似结果:
Sqoop 1.4.7
如果此时还没有安装 HBase,命令输出里可能会提示 HBASE_HOME 不存在。这个提示只表示 HBase 相关导入能力暂时不可用,不影响 Sqoop Client 本身。等下一篇 HBase 安装完成后,再回头使用 HBase 相关导入能力即可。
到这里,Sqoop 的基础安装完成。下一步继续安装 HBase,补齐后续 HBase、Kafka、Flink、Spark、Hue 这些组件的运行底座。