Spark Streaming&集中式日志记录:将executorId添加到日志中

时间:2017-06-26 10:53:29

标签: apache-spark yarn amazon-emr log4

我正在尝试为Spark流应用程序设置集中式日志记录。我的具体用例是出口驱动程序&执行者记录到AWS CloudWatch日志,但我认为我的部分问题与CloudWatch日志和EMR无关。

感谢Running Spark on Yarn /调试您的应用程序,我知道如何传递我自己的log4j配置文件,甚至可以使用spark.yarn.app.container.log.dir。我已经能够将每个执行程序日志记录到本地文件中,并在每个实例上运行CloudWatch日志代理,以将本地文件发布到CloudWatch日志中。

此设置的问题是来自所有执行程序的日志是混合的。无法知道哪个执行者产生了哪个事件。我想将执行程序ID添加到CloudWatch流名称或直接添加到日志中。但是我没有看到如何将Spark中的信息注入log4j。

我快速查看ExecutorRunnable.scala,但未能找到合适的环境变量或系统属性。您是否知道任何可满足我需求的房产?人们如何处理这个问题? (即使在ELK堆栈或其他任何方面)

0 个答案:

没有答案