我使用CSV sinc将metrics.properties文件添加到资源目录(maven项目)。当我在本地运行Spark应用程序时,一切都很好 - 会出现指标。但是,当我向Amazon EMR提交相同的胖罐时,我没有看到任何尝试将指标放入CSV sinc。所以我想在运行时检查SparkMetrics子系统的加载设置。如果有可能这样做?我看着SparkEnv.get.metricsSystem
,但没有找到任何。
这基本上是因为EMR上的Spark没有从胖罐的metrics.properties
目录中获取你的自定义resources
文件。
对于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 Console或SDK创建EMR集群时,可以使用此JSON