更新时间:2025-06-10 GMT+08:00

配置WebUI上查看Container日志

操作场景

当Yarn配置“yarn.log-aggregation-enable”“true”时,就开启了container日志聚合功能。日志聚合功能是指:当应用在Yarn上执行完成后,NodeManager将本节点中所有container的日志聚合到HDFS中,并删除本地日志。详情请参见配置Container日志聚合功能

然而,开启container日志聚合功能之后,其日志聚合至HDFS目录中,只能通过获取HDFS文件来查看日志。开源Spark和Yarn服务不支持通过WebUI查看聚合后的日志。

因此,Spark在此基础上进行了功能增强。如图1所示,在HistoryServer页面添加“AggregatedLogs”页签,可以通过“logs”链接查看聚合的日志。

图1 聚合日志显示页面

配置描述

为了使WebUI页面显示日志,需要将聚合日志进行解析和展现。Spark是通过Hadoop的JobHistoryServer来解析聚合日志的,所以您可以通过“spark.jobhistory.address”参数,指定JobHistoryServer页面地址,即可完成解析和展现。

参数入口:

  1. 安装Spark客户端。

    详细操作请参考安装MRS客户端

  2. 使用客户端安装用户登录Spark客户端节点。

    在客户端的“spark-defaults.conf”配置文件中调整如下参数,或者在应用提交时通过“--conf”设置这些参数。

    • 此功能依赖Hadoop中的JobHistoryServer服务,所以使用聚合日志之前需要保证JobHistoryServer服务已经运行正常。
    • 如果参数值为空,“AggregatedLogs”页签仍然存在,但是无法通过logs链接查看日志。
    • 只有当App已经running,HDFS上已经有该App的事件日志文件时才能查看到聚合的container日志。
    • 正在运行的任务的日志,用户可以通过“Executors”页面的日志链接进行查看,任务结束后日志会汇聚到HDFS上,“Executors”页面的日志链接就会失效,此时用户可以通过“AggregatedLogs”页面的logs链接查看聚合日志。
    表1 参数说明

    参数

    参数描述

    spark.jobhistory.address

    JobHistoryServer页面的地址,格式:http(s)://ip:port/jobhistory。例如,将参数值设置为“https://10.92.115.1:26014/jobhistory”

    默认值为空,表示不能从WebUI查看container聚合日志。

    修改参数后,需重启服务使得配置生效。