【问题标题】:How to send Spark metrics to Graphite on Standalone cluster?如何将 Spark 指标发送到独立集群上的 Graphite?
【发布时间】:2015-11-09 15:23:09
【问题描述】:

我尝试使用以下配置将 Spark 指标发送到 Graphite:

*.sink.graphite.class=org.apache.spark.metrics.sink.GraphiteSink
*.sink.graphite.host=85.10.206.170
*.sink.graphite.port=2003
*.sink.graphite.period=1
*.sink.graphite.unit=minutes

# Enable jvm source for instance master, worker, driver and executor
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

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

保存在/data/configurations/metrics.properties。

我提交的申请带有以下属性:

--files=/data/configuration/metrics.properties --conf spark.metrics.conf=metrics.properties

我收到以下错误:

com.test.MyApp: metrics.properties (No such file or directory)
 java.io.FileNotFoundException: metrics.properties (No such file or directory)
    at java.io.FileInputStream.open0(Native Method) ~[?:1.8.0_45]
    at java.io.FileInputStream.open(FileInputStream.java:195) ~[?:1.8.0_45]
    at java.io.FileInputStream.<init>(FileInputStream.java:138) ~[?:1.8.0_45]
    at java.io.FileInputStream.<init>(FileInputStream.java:93) ~[?:1.8.0_45]
    at org.apache.spark.metrics.MetricsConfig$$anonfun$1.apply(MetricsConfig.scala:50) ~[spark-assembly-1.4.1-hadoop2.4.0.jar:1.4.1]
    at org.apache.spark.metrics.MetricsConfig$$anonfun$1.apply(MetricsConfig.scala:50) ~[spark-assembly-1.4.1-hadoop2.4.0.jar:1.4.1]
    at scala.Option.map(Option.scala:145) ~[spark-assembly-1.4.1-hadoop2.4.0.jar:1.4.1]
    at org.apache.spark.metrics.MetricsConfig.initialize(MetricsConfig.scala:50) ~[spark-assembly-1.4.1-hadoop2.4.0.jar:1.4.1]
    at org.apache.spark.metrics.MetricsSystem.<init>(MetricsSystem.scala:93) ~[spark-assembly-1.4.1-hadoop2.4.0.jar:1.4.1]
    at org.apache.spark.metrics.MetricsSystem$.createMetricsSystem(MetricsSystem.scala:222) ~[spark-assembly-1.4.1-hadoop2.4.0.jar:1.4.1]
    at org.apache.spark.SparkEnv$.create(SparkEnv.scala:361) ~[spark-assembly-1.4.1-hadoop2.4.0.jar:1.4.1]
    at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:188) ~[spark-assembly-1.4.1-hadoop2.4.0.jar:1.4.1]
    at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:267) ~[spark-assembly-1.4.1-hadoop2.4.0.jar:1.4.1]
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:424) ~[spark-assembly-1.4.1-hadoop2.4.0.jar:1.4.1]
    at org.apache.spark.streaming.StreamingContext$.createNewSparkContext(StreamingContext.scala:842) ~[spark-assembly-1.4.1-hadoop2.4.0.jar:1.4.1]
    at org.apache.spark.streaming.StreamingContext.<init>(StreamingContext.scala:80) ~[spark-assembly-1.4.1-hadoop2.4.0.jar:1.4.1]
    at org.apache.spark.streaming.api.java.JavaStreamingContext.<init>(JavaStreamingContext.scala:133) ~[spark-assembly-1.4.1-hadoop2.4.0.jar:1.4.1]

我哪里错了?

【问题讨论】:

  • 试试 file:////data/configuration/metrics.properties。还要确保 metrics.properties 文件存在于 /conf

标签: apache-spark metrics graphite


【解决方案1】:

tl;dr spark.metrics.conf 应该是绝对路径。

NB:星号 (*) 指 任何 Spark 中可用的度量源,可以是 driver、executor、外部 shuffleService、master、applications、 worker, mesos_cluster.

提示:您可以使用服务的相应 URL 访问指标,例如4040 用于驱动程序,8080 用于 Spark Standalone 的 master 和应用程序,使用 http://localhost:[port]/metrics/json/ URL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 2018-06-25
    相关资源
    最近更新 更多