Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 导出在同一台计算机上运行的多个执行器的spark executor jmx度量_Apache Spark_Kubernetes_Prometheus_Metrics_Jmx Exporter - Fatal编程技术网

Apache spark 导出在同一台计算机上运行的多个执行器的spark executor jmx度量

Apache spark 导出在同一台计算机上运行的多个执行器的spark executor jmx度量,apache-spark,kubernetes,prometheus,metrics,jmx-exporter,Apache Spark,Kubernetes,Prometheus,Metrics,Jmx Exporter,我正在尝试使用javaagent和以下选项来获取spark驱动程序和执行器的指标。我在kubernetes集群中有Prometheus,我正在kubernetes集群之外运行这个spark应用程序 spark.executor.extraJavaOptions=-javaagent:/opt/clkd/prometheus/jmx_prometheus_javaagent-0.3.1.jar=53700:executor_pattern.yaml 但由于两个执行器都在同一台机器上运行,所以我得

我正在尝试使用javaagent和以下选项来获取spark驱动程序和执行器的指标。我在kubernetes集群中有Prometheus,我正在kubernetes集群之外运行这个spark应用程序

spark.executor.extraJavaOptions=-javaagent:/opt/clkd/prometheus/jmx_prometheus_javaagent-0.3.1.jar=53700:executor_pattern.yaml
但由于两个执行器都在同一台机器上运行,所以我得到了以下异常

Caused by: java.net.BindException: Address already in use .... 

我看到很多人都提出了同样的问题,但我找不到答案。请告诉我如何解决此问题。

我认为您需要从基于拉的监控切换到基于推的监控。对于像Spark jobs这样的公司来说,这更有意义,因为它们并非一直在运行。为此,您有一些选择:

  • 星火普罗米修斯从万载云中沉入,正如他们的照片所描绘的那样
  • 按照中所述设置GraphiteSink,并将其指向,然后从导出器中刮取度量值

初步答复:


您不能让两个进程监听同一端口,所以只需将来自不同作业的Prometheus绑定到不同端口即可。端口是
jmx\u prometheus\u javaagent-0.3.1.jar=
后面的数字,在
字符之前-在您的例子中是
53700
。因此,您可以将一个端口用于一个任务,将另一个端口(可能
53701
)用于第二个任务…

,但我无法配置特定于每个spark执行器的JVM选项。spark.executor.extraJavaOptions是所有spark executor的单个参数。抱歉,您是对的。。。不知怎的,我以为是给司机的:-)我改变了答案