Flink 安装1.17.2
# Flink 安装
Flink 在这套环境里主要接入 YARN 运行。安装时会部署 FLINK_HISTORYSERVER 和 FLINK_CLIENT,HistoryServer 用来看已完成作业,Client 用来提交 Flink 任务。
本篇环境已经安装 HDFS、YARN、MapReduce2、Tez、Hive、Kafka,并且开启了 Kerberos。Flink 依赖 YARN,所以先确认 ResourceManager、NodeManager 都是运行中,再开始安装。
本次角色分配如下:
| 主机 | Flink 角色 |
|---|---|
hadoop1.test.com | FLINK_HISTORYSERVER、FLINK_CLIENT |
hadoop2.test.com | FLINK_CLIENT |
hadoop3.test.com | FLINK_CLIENT |
注意
Kerberos 环境里,Flink 的 security.kerberos.login.principal 要和 YARN 本地运行用户匹配。教程环境使用 [email protected],对应系统用户是 flink。如果你改成类似 flink-xxx@REALM 的租户化 principal,就要确保所有 NodeManager 节点都存在这个本地用户,否则 Service Check 提交到 YARN 后会失败。
# 1. 选择 Flink 服务
进入 服务与组件,点击 新增服务,勾选 Flink。

页面会显示 Flink 依赖 YARN。前面已经安装并启动 YARN,所以这里可以直接下一步。
# 2. 分配 Flink HistoryServer
Master 分配页里,Flink 的常驻服务端角色是 FLINK_HISTORYSERVER。

本次把 HistoryServer 放在 hadoop1.test.com:
| 组件 | 主机 | 说明 |
|---|---|---|
FLINK_HISTORYSERVER | hadoop1.test.com | 用于展示 Flink 已完成作业。 |
Flink on YARN 的 JobManager / TaskManager 会随作业提交到 YARN,不在 Ambari 里作为固定常驻组件分配。
# 3. 分配 Flink Client
Slave 与 Client 分配页里,Flink 没有 Slave 组件,主要分配 FLINK_CLIENT。

本次三台主机都安装 Client:
| 组件 | 分配主机 |
|---|---|
FLINK_CLIENT | hadoop1.test.com、hadoop2.test.com、hadoop3.test.com |
这样后续可以在任意节点上执行 flink 命令。如果生产环境只允许边缘节点提交任务,也可以只把 Client 放在边缘节点。
# 4. 检查 Flink 推荐配置
进入自定义配置页后,页面会显示 Flink 的配置分组。

先确认 待填写 0。我会重点看这些配置:
| 配置项 | 说明 |
|---|---|
historyserver.web.port | Flink HistoryServer Web 端口,示例环境为 8082。 |
historyserver.archive.fs.dir | 已完成作业归档目录,通常放在 HDFS。 |
jobmanager.archive.fs.dir | JobManager 写入归档的目录。 |
rest.port | Flink REST 端口,示例环境为 8081。 |
security.kerberos.login.keytab | Kerberos keytab 路径。 |
security.kerberos.login.principal | Kerberos principal,需和本地运行用户匹配。 |
如果后续要跑长任务,建议再根据机器资源调整 JobManager、TaskManager 内存和 slot 数;第一次安装先按推荐配置跑通。
# 5. 确认安装清单
确认页里会展示 Flink 的角色分配。

本次确认结果如下:
| 检查项 | 本次结果 |
|---|---|
| 新增服务 | FLINK |
| Master 分配 | FLINK_HISTORYSERVER -> hadoop1.test.com |
| Slave 分配 | 无 |
| Client 分配 | 三台主机都有 FLINK_CLIENT |
| 配置校验 | 必填项已填写 |
确认无误后点击 开始安装。
# 6. 提交 Kerberos 管理员凭据
开启 Kerberos 的集群中,新增 Flink 需要提交 KDC 管理员凭据。

提交后,系统会生成 Flink 使用的 keytab,并把配置下发到对应主机。
# 7. 等待 Flink 安装与启动
安装进度页会按主机展示任务。

这个阶段主要看:
| 阶段 | 期望结果 |
|---|---|
| Client 安装 | 三台主机的 FLINK_CLIENT 安装完成。 |
| HistoryServer 安装 | hadoop1.test.com 上的 FLINK_HISTORYSERVER 安装完成。 |
| Kerberos | keytab 生成并分发完成。 |
| 启动服务 | Flink History Server 启动完成。 |
| Service Check | Flink on YARN 示例任务执行成功。 |
如果 Service Check 报 User xxx not found,通常是 Kerberos principal 和 YARN 本地运行用户不一致。要么使用已有的 flink 服务用户 principal,要么在所有 NodeManager 节点补齐对应本地用户。
# 8. 回到服务列表确认状态
回到 服务与组件 页面,Flink 会出现在 资源计算 分类下。

页面里可以看到:
| 组件 | 状态 |
|---|---|
Flink History Server | 运行中 |
Flink Client | 客户端 |
命令行可以做一个版本确认:
flink --version
正常会看到类似结果:
Version: 1.17.2, Commit ID: 13021fc
到这里,Flink 的基础安装完成。下一步继续安装 Spark;Spark 同样依赖 YARN 和 Hive,安装后再一起检查计算入口和历史服务。