如果有一种方法可以在运行时获取有关SparkMetrics配置的信息

时间:2019-03-01 09:37:28

标签: amazon-web-services apache-spark amazon-emr metrics

我使用CSV sinc将metrics.properties文件添加到资源目录(Maven项目)。当我在本地运行Spark应用时,一切都很好-会显示指标。但是,当我向Amazon EMR提交相同的胖罐时,我看不到任何尝试将指标放入CSV sinc的尝试。所以我想在运行时检查SparkMetrics子系统加载了哪些设置。是否有可能这样做? 我调查了SparkEnv.get.metricsSystem,但没有找到。

1 个答案:

答案 0 :(得分:1)

这基本上是因为EMR上的Spark不会从胖子的metrics.properties目录中提取您的自定义resources文件。

对于EMR,首选的配置方式是通过EMR Configurations API,您需要在嵌入式JSON中传递classificationproperties

  • 对于spark metrics子系统,下面是修改几个指标的示例
  [
    {
      "Classification": "spark-metrics",
      "Properties": {
        "*.sink.csv.class": "org.apache.spark.metrics.sink.CsvSink",
        "*.sink.csv.period": "1"
      }
    }
  ]

使用Amazon Console或通过SDK创建EMR集群时,可以使用此JSON