我在YARN上使用Spark
Ambari 2.7.4
HDP独立版3.1.4
Spark 2.3.2
Hadoop 3.1.1
Docker latest
上的石墨
我试图在this tutorial之后使用Graphite sink获取Spark指标。
Ambari中的高级spark2-metrics-properties是:
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
火花提交:
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
命令中,但这没有帮助。
最后,我在spark-submit
和Java SparkConf
中尝试了conf:
--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
指标仍然不存在。
答案 0 :(得分:0)
发布一个过时的问题,但也许会有所帮助。
似乎执行程序在他们的文件系统上没有 metrics.properties
文件。
确认这一点的一种方法是查看执行程序日志:
2020-01-16 10:00:10 ERROR MetricsConfig:91 - Error loading configuration file metrics.properties
java.io.FileNotFoundException: metrics.properties (No such file or directory)
at org.apache.spark.metrics.MetricsConfig.loadPropertiesFromFile(MetricsConfig.scala:132)
at org.apache.spark.metrics.MetricsConfig.initialize(MetricsConfig.scala:55)
at org.apache.spark.metrics.MetricsSystem.<init>(MetricsSystem.scala:95)
at org.apache.spark.metrics.MetricsSystem$.createMetricsSystem(MetricsSystem.scala:233)
要在纱线上解决此问题,请向 spark-submit 传递两个参数:
$ spark-submit \
--files metrics.properties \
--conf spark.metrics.conf=metrics.properties
--files
选项确保该选项中指定的文件将共享给执行程序。
spark.metrics.conf
选项指定指标的自定义文件位置。
解决此问题的另一种方法是在开始作业之前将 metrics.properties 文件放入驱动程序和执行程序的 $SPARK_HOME/conf/metrics.properties
中。
此处有更多关于指标的信息:https://spark.apache.org/docs/latest/monitoring.html