Flink 安装

Flink 在这套环境里主要接入 YARN 运行。安装时会部署 FLINK_HISTORYSERVERFLINK_CLIENT,HistoryServer 用来看已完成作业,Client 用来提交 Flink 任务。

本篇环境已经安装 HDFS、YARN、MapReduce2、Tez、Hive、Kafka,并且开启了 Kerberos。Flink 依赖 YARN,所以先确认 ResourceManager、NodeManager 都是运行中,再开始安装。

本次角色分配如下:

主机 Flink 角色
hadoop1.test.com FLINK_HISTORYSERVERFLINK_CLIENT
hadoop2.test.com FLINK_CLIENT
hadoop3.test.com FLINK_CLIENT

::: warning
Kerberos 环境里,Flink 的 security.kerberos.login.principal 要和 YARN 本地运行用户匹配。教程环境使用 flink@TEST.COM,对应系统用户是 flink。如果你改成类似 flink-xxx@REALM 的租户化 principal,就要确保所有 NodeManager 节点都存在这个本地用户,否则 Service Check 提交到 YARN 后会失败。
:::

1. 选择 Flink 服务

进入 服务与组件,点击 新增服务,勾选 Flink

选择 Flink 服务

页面会显示 Flink 依赖 YARN。前面已经安装并启动 YARN,所以这里可以直接下一步。

2. 分配 Flink HistoryServer

Master 分配页里,Flink 的常驻服务端角色是 FLINK_HISTORYSERVER

分配 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

分配 Flink Client

本次三台主机都安装 Client:

组件 分配主机
FLINK_CLIENT hadoop1.test.comhadoop2.test.comhadoop3.test.com

这样后续可以在任意节点上执行 flink 命令。如果生产环境只允许边缘节点提交任务,也可以只把 Client 放在边缘节点。

4. 检查 Flink 推荐配置

进入自定义配置页后,页面会显示 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 安装确认页

本次确认结果如下:

检查项 本次结果
新增服务 FLINK
Master 分配 FLINK_HISTORYSERVER -> hadoop1.test.com
Slave 分配
Client 分配 三台主机都有 FLINK_CLIENT
配置校验 必填项已填写

确认无误后点击 开始安装

6. 提交 Kerberos 管理员凭据

开启 Kerberos 的集群中,新增 Flink 需要提交 KDC 管理员凭据。

提交 Flink Kerberos 凭据

提交后,系统会生成 Flink 使用的 keytab,并把配置下发到对应主机。

7. 等待 Flink 安装与启动

安装进度页会按主机展示任务。

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 服务运行中

页面里可以看到:

组件 状态
Flink History Server 运行中
Flink Client 客户端

命令行可以做一个版本确认:

flink --version

正常会看到类似结果:

Version: 1.17.2, Commit ID: 13021fc

到这里,Flink 的基础安装完成。下一步继续安装 Spark;Spark 同样依赖 YARN 和 Hive,安装后再一起检查计算入口和历史服务。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐