如果有办法在运行时获取有关 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= 中传递 classification
和 properties
]
- 对于
spark metrics
子系统,这里是修改几个指标的示例
[
{
"Classification": "spark-metrics",
"Properties": {
"*.sink.csv.class": "org.apache.spark.metrics.sink.CsvSink",
"*.sink.csv.period": "1"
}
}
]
您可以在使用 Amazon 控制台或通过 SDK 创建 EMR 集群时使用此 JSON
我使用 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= 中传递 classification
和 properties
]
- 对于
spark metrics
子系统,这里是修改几个指标的示例
[
{
"Classification": "spark-metrics",
"Properties": {
"*.sink.csv.class": "org.apache.spark.metrics.sink.CsvSink",
"*.sink.csv.period": "1"
}
}
]
您可以在使用 Amazon 控制台或通过 SDK 创建 EMR 集群时使用此 JSON