scala - yarn 上的 Spark ;如何将指标发送到 Graphite 水槽?

标签 scala hadoop apache-spark

我是 spark 的新手,我们正在运行 spark on yarn。我可以很好地运行我的测试应用程序。我正在尝试收集 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

最佳答案

对于同一个问题,我找到了不同的解决方案。看起来 Spark 也可以从其配置属性中获取这些指标设置。例如 metrics.properties 中的以下行:

*.sink.Graphite.class=org.apache.spark.metrics.sink.GraphiteSink

也可以指定为具有键 spark.metrics.conf.*.sink.graphite.class 和值 org.apache.spark.metrics.sink.GraphiteSink< 的 Spark 属性。您只需在每个键前添加 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)

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

关于scala - yarn 上的 Spark ;如何将指标发送到 Graphite 水槽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23529404/

相关文章:

scala - 如何在 Scala 中清理我死去的 Actor

python - python hadoop流中的组合器函数

java.lang.IllegalAccessError : cannot access its superinterface 错误

python - PySpark 拖放行

r - Spark Dataframe 中的重复列

java - 从 Scala 到 Java 的翻译

syntax - 在 Scala 中使用类变量作为常量

hadoop - 设置Python虚拟环境启动Jupyter Notebook gaierror:[Errno -2]名称或服务未知

python - 在 PySpark 中使用 toDF() 函数将 RDD 转换为 Dataframe 时的奇怪行为

java - 如何在 Scala 中以字符串格式重复参数