You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Job Manager的flink-conf.yml?Yarn集群配置疑问

问题答疑

是的,完全不需要保留taskmanager.host这类TaskManager专属配置,你的理解是正确的。

在YARN模式下,TaskManager由YARN的NodeManager根据资源调度逻辑启动,其专属配置(如taskmanager.host、taskmanager.numberOfTaskSlots等)要么通过所有节点统一的flink-conf.yml分发,要么在提交集群/作业时通过参数临时指定,JobManager节点的配置文件只需关注自身运行相关的参数(如jobmanager.rpc.address、jobmanager.memory.process.size)和集群通用配置(如YARN、HDFS地址)。

2. TaskManager相关配置的存放位置是否正确?

你的理解完全正确。taskmanager.host这类配置是TaskManager启动时用来绑定自身网络地址的,应该配置在所有会运行TaskManager的节点的flink-conf.yml中(实际生产中通常会通过配置同步工具让所有节点使用相同的flink-conf.yml),不需要单独在JobManager节点配置。

3. 能否在JobManager主机上定义多个TaskManager条目?

不能,也完全不需要这么做。YARN模式下,TaskManager的数量、运行节点由YARN资源调度系统管理,你只需要在启动集群或提交作业时指定TaskManager的数量、资源规格(如内存、slot数),如果需要约束TaskManager运行在特定节点,可以通过YARN的节点标签实现,无需手动定义每个TaskManager的主机信息。


前置条件

  • Hadoop YARN+HDFS集群已正常运行,所有节点网络互通,HADOOP_HOME环境变量已全局配置
  • 下载与Hadoop版本兼容的Flink安装包(如flink-1.18.0-bin-scala_2.12.tgz),解压到所有节点的相同路径(如/opt/flink)
  • 所有节点已配置JAVA_HOME,JDK版本推荐11

编辑所有节点的/opt/flink/conf/flink-conf.yml,添加以下核心配置:

# JobManager基础配置(指定你要运行JobManager的主机IP/主机名)
jobmanager.rpc.address: your-jobmanager-host
jobmanager.rpc.port: 6123
jobmanager.memory.process.size: 2048m

# TaskManager基础配置
taskmanager.memory.process.size: 4096m
taskmanager.numberOfTaskSlots: 4

# YARN与HDFS配置
yarn.application.name: Flink-Session-Cluster
fs.defaultFS: hdfs://your-namenode-host:9000
yarn.resourcemanager.address: your-resourcemanager-host:8032
yarn.resourcemanager.scheduler.address: your-resourcemanager-host:8030

步骤2:配置YARN节点标签(约束TaskManager运行节点)

为了让TaskManager只在你指定的2台NodeManager节点上运行,需要给这两台节点打标签:

  1. 在YARN ResourceManager节点执行,创建标签:
yarn rmadmin -addToNodeLabels "flink-task-node=true"
  1. 给指定的两台NodeManager节点绑定标签:
yarn rmadmin -replaceLabelsOnNode "node-manager-1-host=flink-task-node"
yarn rmadmin -replaceLabelsOnNode "node-manager-2-host=flink-task-node"

在你选定的JobManager主机上,执行以下命令启动后台运行的Session集群:

cd /opt/flink
./bin/yarn-session.sh -d -yn 2 -yD yarn.node-labels.enabled=true -yD yarn.node-labels.node-expression="flink-task-node"

参数说明:

  • -d:后台运行集群
  • -yn 2:启动2个TaskManager
  • -yD yarn.node-labels.enabled=true:启用YARN节点标签功能
  • -yD yarn.node-labels.node-expression="flink-task-node":指定仅在带有flink-task-node标签的节点启动TaskManager

步骤4:验证集群

  1. 访问Flink WebUI:打开浏览器输入http://your-jobmanager-host:8081,查看TaskManager列表,确认数量为2且运行在指定的NodeManager节点上
  2. 提交测试作业验证:
./bin/flink run ./examples/batch/WordCount.jar --input hdfs:///input/test.txt --output hdfs:///output/wordcount-result

若作业正常完成并在HDFS输出目录生成结果,说明集群搭建成功


内容的提问来源于stack exchange,提问作者codenirvan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 16:52:45