Flink on Yarn无法查看监控指标求助(环境:flink-1.4等)
解决YARN上Flink 1.4监控指标无法显示的问题
结合你提到的环境(flink-1.4、kafka-0.10、cdh-5.11.1)以及程序运行正常但看不到监控的情况,我之前在类似的CDH集群环境里踩过相同的坑,给你梳理几个最可能的排查方向:
1. YARN容器端口映射或端口权限问题
Flink的JobManager和TaskManager监控端口在YARN环境下容易被端口隔离限制,导致无法访问:
- 先检查
flink-conf.yaml里的核心配置:
确保这两个端口没有和集群其他服务冲突;jobmanager.web.port: 8081 taskmanager.web.port: 8082 - 登录CDH管理界面,找到YARN的配置项,把上述端口添加到
yarn.nodemanager.port-range的允许范围内,或者调整yarn.nodemanager.container-executor.class对应的端口白名单; - 提交作业时务必用
-d( detached模式),然后通过YARN Application Master的地址访问Flink UI——不要直接访问JobManager的物理IP,YARN会自动做端口映射,直接访问物理IP大概率会被拦截。
2. Metric Reporter未正确配置
Flink 1.4默认没有开启完整的指标采集器,导致监控数据无法生成和展示:
- 修改
flink-conf.yaml添加Prometheus Reporter配置(这是Flink 1.4最稳定的监控方案):metrics.reporters: prom metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter metrics.reporter.prom.port: 9250 - 注意:需要把
flink-metrics-prometheus-1.4.0.jar放到所有Flink节点的lib目录下(CDH部署的话要同步到所有节点),不然Reporter会加载失败; - 重启Flink YARN会话或者重新提交作业,之后就能在Flink UI的Metrics页面看到指标,也可以通过Prometheus拉取数据。
3. CDH权限控制拦截请求
如果你的集群开启了Kerberos或者Ranger权限控制,很可能是权限限制导致无法获取监控数据:
- 先确认当前用户有访问YARN Application Master的权限,执行
kinit -kt /path/to/your.keytab your_username@YOUR_REALM获取有效的Kerberos票据; - 登录Ranger管理界面,检查Flink的权限规则,确保当前用户有访问Flink UI和指标接口的权限;
- 也可以临时关闭Kerberos测试(如果允许的话),确认是不是权限问题。
4. Flink与CDH版本兼容性问题
Flink 1.4和CDH 5.11.1自带的Hadoop 2.6.0-cdh5.11.1可能存在兼容性差异:
- 尽量使用CDH官方编译的Flink版本,或者自己重新编译Flink 1.4,指定Hadoop版本为
2.6.0-cdh5.11.1; - 检查
flink-conf.yaml里的fs.hdfs.hadoopconf配置,确保指向CDH的Hadoop配置目录(比如/etc/hadoop/conf),让Flink正确加载集群的Hadoop配置。
如果有具体的报错截图(比如UI显示空白、控制台有异常日志),可以再补充细节,不过以上几个点在这个环境下解决了我当时遇到的问题。
内容的提问来源于stack exchange,提问作者dong_gua




