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

Posted

技术标签:

【中文标题】纱线上的哪个目录触发应用程序将其日志输出到?每个节点中的 spark.eventLog.dir 或 var/log/?【英文标题】:Which directory spark applications on yarn output their logs to? spark.eventLog.dir or var/log/ in each node? 【发布时间】:2021-05-09 06:08:41 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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)。

【讨论】:

所以可以从默认的 yarn.nodemanager.log-dirs 目录获取实时 Spark 日志吗?

以上是关于纱线上的哪个目录触发应用程序将其日志输出到?每个节点中的 spark.eventLog.dir 或 var/log/?的主要内容,如果未能解决你的问题,请参考以下文章

linux 系统日志在哪个目录

如何解决 Spark 上的纱线容器尺寸问题?

安装纱线被拒绝

搞定排错k8s集群日志管理

搞定排错k8s集群日志管理

从进度输出中删除进度条,将其重定向到日志文件中