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

问题描述 投票:0回答:1

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

感谢 在 Yarn 上运行 Spark / 调试应用程序,我知道如何传入我自己的 log4j 配置文件,甚至

spark.yarn.app.container.log.dir
也可用。我已经能够让每个执行程序登录到本地文件,并在每个实例上运行 CloudWatch 日志代理,以将本地文件发布到 CloudWatch 日志中。

此设置的问题是来自所有执行器的日志是混合的。不可能知道哪个执行者产生了哪个事件。我想将执行者 ID 等内容添加到 CloudWatch 流名称或直接添加到日志中。但是我不知道如何将该信息从 Spark 注入到 log4j。

我快速查看了

ExecutorRunnable.scala
,但未能找到合适的环境变量或系统属性。您知道有什么房产可以满足我的需要吗?人们如何处理这个问题? (即使是在 ELK 堆栈或其他任何东西上)

apache-spark hadoop-yarn amazon-emr log4j
1个回答
0
投票

您是否找到了将执行者 ID 之类的内容添加到 CloudWatch 流名称的解决方案?谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.