问题描述
我正在构建一个日志分析计划来监控纱线集群上的火花作业,我想清楚地了解火花/纱线日志记录。 我对此进行了大量搜索,这些是我的困惑。
-
spark.eventLog.dir 或 spark.history.fs.logDirectory 中指定的目录被存储所有 应用程序主日志并通过 spark conf 中的 log4j.properties 我们可以自定义这些日志?
-
默认情况下,所有数据节点都将其执行程序日志输出到 /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)。