yarn 上的哪个目录 spark 应用程序将日志输出到? spark.eventLog.dir 或 var/log/ 在每个节点?

Which directory spark applications on yarn output their logs to? spark.eventLog.dir or var/log/ in each node?

我正在构建一个日志分析计划表来监控 yarn 集群上的 spark 作业,我想清楚地了解 spark/yarn 日志记录。 我已经搜索了很多关于这个,这些是我的困惑。

  1. spark.eventLog.dir或spark.history.fs.logDirectory指定的目录获取所有的存放 应用程序主日志并通过 spark conf 中的 log4j.properties 我们可以自定义这些日志 ?

  2. 默认情况下,所有数据节点都将其执行程序日志输出到 /var/log/ 中的文件夹。启用日志聚合后,您还可以将这些执行程序日志获取到 spark.eventLog.dir 位置吗?

我已经成功地建立了一个 3 节点的虚拟 hadoop yarn 集群,spark 安装在主节点上。当我在客户端模式下 运行 spark 时,我认为这个节点成为应用程序主节点。 我是大数据的初学者,感谢任何帮助我解决这些困惑的努力。

Spark log4j 日志记录被写入 Yarn 容器 stderr 日志。这些目录由 yarn.nodemanager.log-dirs 配置参数控制(EMR 上的默认值为 /var/log/hadoop-yarn/containers)。

(spark.eventLog.dir 仅供 Spark History Server 在作业完成后显示 Web UI。此处,Spark 写入 events that encode the information displayed in the UI to persisted storage)。