【问题标题】:Spark metrics sink doesn't expose executor's metricsSpark 指标接收器不公开执行者的指标
【发布时间】:2019-11-03 17:50:01
【问题描述】:

我在 YARN 上使用 Spark 和

安巴里2.7.4
HDP 单机版3.1.4
火花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 指标仍然不存在。

【问题讨论】:

    标签: apache-spark monitoring hadoop2 metrics graphite


    【解决方案1】:

    发布一个过时的问题,但也许会有所帮助。

    似乎执行程序的文件系统上没有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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-13
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      相关资源
      最近更新 更多