Экспорт jmx-метрик SparkExector для нескольких исполнителей, работающих на одном компьютере - PullRequest
2 голосов
/ 13 июля 2020

Я пытаюсь очистить метрики для драйвера искры и исполнителя, используя javaagent с параметрами ниже. У меня есть Prometheus в кластере kubernetes, и я запускаю это искровое приложение вне кластера kubernetes.

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 .... 

I вижу, что многие отправили тот же вопрос, но я не мог найти ответа. Пожалуйста, дайте мне знать, как я могу решить эту проблему.

1 Ответ

0 голосов
/ 13 июля 2020

Я думаю, что вам нужно перейти с мониторинга по запросу на мониторинг на основе pu sh. Для таких вещей, как задания Spark, это имеет больше смысла, поскольку они не выполняются все время. Для этого у вас есть несколько альтернатив:

Первоначальный ответ:

У вас не может быть двух процессов, прослушивающих один и тот же порт, поэтому просто привяжите Prometheus из разных заданий к разным портам. Порт - это номер после символа jmx_prometheus_javaagent-0.3.1.jar= и перед символом : - в вашем случае это 53700. Таким образом, вы можете использовать один порт для одной задачи, а другой порт (возможно, 53701) для второй задачи ...

...