纱线上的哪个目录触发应用程序将其日志输出到?每个节点中的 spark.eventLog.dir 或 var/log/?

问题描述

我正在构建一个日志分析计划来监控纱线集群上的火花作业,我想清楚地了解火花/纱线日志记录。 我对此进行了大量搜索,这些是我的困惑。

  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 容器标准错误日志。这些目录由 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)。