首页 > 解决方案 > 使用 prometheus JMX 代理从在单个节点上运行的多个 spark executor 导出指标

问题描述

我正在运行 spark 集群,并且我有一个节点,其中运行了三个执行程序。我想使用 Prometheus JMX 代理为所有三个执行程序废弃指标。我在 spark 提交命令中使用“spark.executor.extraJavaOptions”传递 Prometheus java 代理,如下所示。

--conf "spark.executor.extraJavaOptions=-javaagent:/opt/agent/jmx_prometheus_javaagent-0.3.1.jar=6677:/opt/agent/spark.yml" 

我将端口作为 6677 传递,并且 JMX 指标仅适用于一个执行程序。对于其他两个执行程序,javaagent 将失败,因为端口 6677 已在使用中,并且不会报告其他两个执行程序的指标。有人可以指导我如何解决这个问题。我在这里发现了类似的问题,但没有答案。

标签: apache-sparkjmxprometheus

解决方案


为其他 2 个执行程序使用不同的端口?您不能让 3 个服务器监听同一个端口,这与 Prometheus 或 JMX 无关。


推荐阅读