不通过web界面的方式,flink on yarn怎么查看每个并行度处理数据的情况,比如有几个并行度正在被使用,每个并行度处理多少数据等等?
Flink 在 YARN 集群上运行时,虽然没有直接的 Web UI 可供查看每个并行度的详细处理数据情况,但你可以通过 Flink 的命令行工具和日志来间接获取这些信息。
首先,你需要连接到 YARN 集群中任意一个节点(确保该节点上有 Flink 客户端或者可以访问到 Flink 安装目录),然后使用 Flink 的命令行客户端(./bin/flink
)来检查作业的状态。
你可以使用以下命令列出所有正在运行的作业:
./bin/flink list
找到你感兴趣的作业ID后,可以使用以下命令获取更详细的作业信息:
./bin/flink jobinfo <job_id>
这会展示作业的基本信息,包括并行度设置等。然而,要查看每个算子的并行度及处理的数据量,需要进一步的步骤。
Flink 的 TaskManagers 会记录每个任务(task)的执行情况,包括处理的数据量。你可以登录到运行 TaskManagers 的节点,查看对应应用的日志文件。日志路径通常可以在 Flink 配置文件(flink-conf.yaml
)中的 web.log.path
找到基础路径,实际日志文件会包含作业ID和时间戳等信息。
在日志中,寻找与特定任务相关的输出,通常会包含每个子任务(即并行度的实例)处理的数据量统计信息。但请注意,这种方式需要手动查找和解析日志,不够直观且可能较为繁琐。
Flink 支持多种metrics报告方式,包括JMX、Graphite、Prometheus等。如果你已经配置了其中任何一种metrics报告方式,可以通过对应的监控工具查看更详细的作业运行时指标,包括每个算子的输入/输出速率、延迟等。
例如,如果你配置了Prometheus作为metrics报告端点,可以通过Prometheus查询语言(PromQL)来查询特定作业或任务的并行度及处理的数据量。例如,查询某个作业ID为job_123
的任务的并行度,可能会用到类似于flink_taskmanager_job_task_num_subtasks{job_id="job_123", task_name="YourTaskName"}
这样的表达式来获取并行子任务数。
虽然直接查看每个并行度处理数据的详细情况不如Web UI直观,但通过Flink的命令行工具和日志分析,以及利用Metrics系统,仍然可以获取到所需的信息。对于长期运维和监控来说,配置一套完善的metrics收集和展示系统(如Prometheus+Grafana)是更推荐的做法。
可以通过metrics监控,配置metrics报告器(如JMX, Graphite等)导出这些数据,然后使用监控工具(如Grafana)展示
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。