如果有办法在运行时获取有关 SparkMetrics 配置的信息

If there are a way to get info at runtime about SparkMetrics configuration

我使用 CSV sinc 将 metrics.properties 文件添加到资源目录(maven 项目)。当我在本地 运行 Spark 应用程序时,一切都很好 - 出现指标。但是当我将相同的 fat jar 文件提交到 Amazon EMR 时,我没有看到任何将指标放入 CSV sinc 的尝试。所以我想在 运行 时间检查 SparkMetrics 子系统的加载设置。如果有可能做到这一点? 我查看了 SparkEnv.get.metricsSystem 但没有找到。

这主要是因为 EMR 上的 Spark 没有从 fat jar 的 resources 目录中获取您的自定义 metrics.properties 文件。

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

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

您可以在使用 Amazon 控制台或通过 SDK 创建 EMR 集群时使用此 JSON