spark如何报告/收集指标

How does spark report / collect metrics

This定义了几个sinks,metrics等等。但是他们被收集了?

  1. 假设我将 JxmSink 添加到 metric.properties 文件中并启用所有实例指标(master、applications、worker、executor、driver、shuffleService、applicationMaster)。
  2. 假设已设置 jmx 端口。

在哪里收集指标:我应该连接到所有集群节点还是只连接到驱动程序节点?

Spark 指标不需要从单个节点中提取,如果在指标属性文件中配置了相应的接收器主机,那么指标将每隔配置的秒数推送给它。我们的设置配置为让 GraphiteSink 收集指标,所需的配置与下面详述的相同(以及您提到的其他配置)

  1. 使用 Graphite 服务器端点准备指标配置属性文件
    *.sink.graphite.class=org.apache.spark.metrics.sink.GraphiteSink
    *.sink.graphite.host=<graphite-server-host>
    *.sink.graphite.port=<graphite-server-port>
    *.sink.graphite.period=10
    *.sink.graphite.prefix=dev
  1. 确保将指标属性文件传递到 spark-submit 作业脚本中的 --files 选项,以便执行器节点使用它来发送指标