纱线上的火花;如何将指标发送到石墨槽?

时间:2014-05-07 22:12:13

标签: scala hadoop apache-spark

我是新来的火花,我们在纱线上运行火花。我可以运行我的测试应用程序。我正在尝试收集Graphite中的spark指标。我知道要对metrics.properties文件进行哪些更改。但是我的spark应用程序将如何看待这个conf文件?

/xxx/spark/spark-0.9.0-incubating-bin-hadoop2/bin/spark-class org.apache.spark.deploy.yarn.Client --jar /xxx/spark/spark-0.9.0-incubating-bin-hadoop2/examples/target/scala-2.10/spark-examples_2.10-assembly-0.9.0-incubating.jar --addJars "hdfs://host:port/spark/lib/spark-assembly_2.10-0.9.0-incubating-hadoop2.2.0.jar" --class org.apache.spark.examples.Test --args yarn-standalone --num-workers 50 --master-memory 1024m --worker-memory 1024m --args "xx"

我应该在哪里指定metrics.properties文件?

我对它做了这些修改:

*.sink.Graphite.class=org.apache.spark.metrics.sink.GraphiteSink
*.sink.Graphite.host=machine.domain.com
*.sink.Graphite.port=2003

master.source.jvm.class=org.apache.spark.metrics.source.JvmSource

worker.source.jvm.class=org.apache.spark.metrics.source.JvmSource

driver.source.jvm.class=org.apache.spark.metrics.source.JvmSource

executor.source.jvm.class=org.apache.spark.metrics.source.JvmSource

2 个答案:

答案 0 :(得分:6)

我在同样的事情上挣扎。我让它使用这些标志:

--files=/path/to/metrics.properties --conf spark.metrics.conf=metrics.properties

这很棘手,因为--files标志使得/path/to/metrics.properties文件在每个执行程序的本地磁盘空间中以metrics.properties结尾; AFAIK那里没有办法在那里指定更复杂的目录结构,或者有两个文件具有相同的basename

相关的,我提交SPARK-5152关于让spark.metrics.conf文件从HDFS读取,但这似乎需要一个相当有创的变化,所以我不能屏住呼吸之一。

答案 1 :(得分:5)

我找到了同一问题的不同解决方案。看起来Spark也可以从其配置属性中获取这些度量设置。例如,来自SharedElementTransition的以下行:

Activity

也可以指定为具有键Transitions和值metrics.properties的Spark属性。您只需要在每个密钥前加*.sink.Graphite.class=org.apache.spark.metrics.sink.GraphiteSink

我最终将所有这些设置放在代码中:

spark.metrics.conf.*.sink.graphite.class

这样我就可以为驱动程序和执行程序设置指标接收器。我使用的是Spark 1.6.0。