You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Flink on 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

火山引擎 最新活动