Приемник метрик Spark не раскрывает метрики исполнителя - PullRequest
0 голосов
/ 03 ноября 2019

Я использую Spark на YARN с

Ambari 2.7.4
HDP Автономный 3.1.4
Spark 2.3.2
Hadoop 3.1.1
Графит на докере latest

Я пытался получить метрики Spark с приемником Graphite, следуя этому учебному пособию .

Расширенные свойства метки spark2 в Ambari:

driver.sink.graphite.class=org.apache.spark.metrics.sink.GraphiteSink
executor.sink.graphite.class=org.apache.spark.metrics.sink.GraphiteSink
worker.sink.graphite.class=org.apache.spark.metrics.sink.GraphiteSink
master.sink.graphite.class=org.apache.spark.metrics.sink.GraphiteSink
*.sink.graphite.host=ap-test-m.c.gcp-ps.internal
*.sink.graphite.port=2003
*.sink.graphite.protocol=tcp
*.sink.graphite.period=10
*.sink.graphite.unit=seconds
*.sink.graphite.prefix=app-test
*.source.jvm.class=org.apache.spark.metrics.source.JvmSource

Spark submit:

export HADOOP_CONF_DIR=/usr/hdp/3.1.4.0-315/hadoop/conf/; spark-submit --class com.Main --master yarn --deploy-mode client --driver-memory 1g --executor-memory 10g --num-executors 2 --executor-cores 2 spark-app.jar /data

В результате я получаю только driver метрики.

Также я пытался добавить команду metrics.properties к spark-submit вместес глобальными опорами метрик искры, но это не помогло.

И, наконец, я попробовал conf в spark-submit и в java SparkConf:

--conf "spark.metrics.conf.driver.sink.graphite.class"="org.apache.spark.metrics.sink.GraphiteSink" 
--conf "spark.metrics.conf.executor.sink.graphite.class"="org.apache.spark.metrics.sink.GraphiteSink" 
--conf "worker.sink.graphite.class"="org.apache.spark.metrics.sink.GraphiteSink"
--conf "master.sink.graphite.class"="org.apache.spark.metrics.sink.GraphiteSink"
--conf "spark.metrics.conf.*.sink.graphite.host"="host" 
--conf "spark.metrics.conf.*.sink.graphite.port"=2003 
--conf "spark.metrics.conf.*.sink.graphite.period"=10 
--conf "spark.metrics.conf.*.sink.graphite.unit"=seconds 
--conf "spark.metrics.conf.*.sink.graphite.prefix"="app-test" 
--conf "spark.metrics.conf.*.source.jvm.class"="org.apache.spark.metrics.source.JvmSource"

Но это тоже не помогло.

CSVSink также дает только метрики драйверов.

UPD

Когда я отправляю работу в режиме cluster - я получаю то же самоеметрики как в Spark History Server. Но метрики jvm все еще отсутствуют.

...