【问题标题】:If there are a way to get info at runtime about SparkMetrics configuration如果有办法在运行时获取有关 SparkMetrics 配置的信息
【发布时间】:2019-03-01 09:37:28
【问题描述】:
我使用 CSV sinc 将 metrics.properties 文件添加到资源目录(maven 项目)。当我在本地运行 Spark 应用程序时一切都很好 - 出现了指标。但是,当我将相同的 fat jar 文件提交到 Amazon EMR 时,我看不到任何将指标放入 CSV sinc 的尝试。所以我想在运行时检查 SparkMetrics 子系统的加载设置。如果有可能做到这一点?
我查看了SparkEnv.get.metricsSystem,但没有找到。
【问题讨论】:
标签:
amazon-web-services
apache-spark
amazon-emr
metrics
【解决方案1】:
这基本上是因为 EMR 上的 Spark 没有从 fat jar 的 resources 目录中提取您的自定义 metrics.properties 文件。
对于 EMR,首选的配置方式是通过 EMR Configurations API,您需要在其中通过嵌入式 JSON 传递 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