use*_*090 5 hadoop scala 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"
Run Code Online (Sandbox Code Playgroud)
我应该在哪里指定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
Run Code Online (Sandbox Code Playgroud)
小智 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读取,但这似乎需要一个相当有创的变化,所以我不会屏住呼吸.
小智 5
我找到了同一问题的不同解决方案.看起来Spark也可以从其配置属性中获取这些度量设置.例如以下行metrics.properties:
*.sink.Graphite.class=org.apache.spark.metrics.sink.GraphiteSink
Run Code Online (Sandbox Code Playgroud)
也可以指定为具有键spark.metrics.conf.*.sink.graphite.class和值的Spark属性org.apache.spark.metrics.sink.GraphiteSink.您只需要预先spark.metrics.conf.添加每个键.
我最终将所有这些设置放在代码中,如下所示:
val sparkConf = new spark.SparkConf()
.set("spark.metrics.conf.*.sink.graphite.class", "org.apache.spark.metrics.sink.GraphiteSink")
.set("spark.metrics.conf.*.sink.graphite.host", graphiteHostName)
// etc.
val sc = new spark.SparkContext(sparkConf)
Run Code Online (Sandbox Code Playgroud)
这样我就可以为驱动程序和执行程序设置指标接收器.我使用的是Spark 1.6.0.
| 归档时间: |
|
| 查看次数: |
7890 次 |
| 最近记录: |