我是新来的火花,我们在纱线上运行火花。我可以运行我的测试应用程序。我正在尝试收集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
答案 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。