查询Dataproc YARN容器日志具体位置及UI任务日志访问异常问题
Dataproc YARN容器日志存储位置
默认情况下Dataproc的YARN容器日志存储在工作节点的/var/log/hadoop-yarn/containers目录下,每个运行过的YARN容器会对应一个以容器ID命名的子目录,目录内包含stdout、stderr、syslog三类日志文件。
如果你的集群开启了日志聚合(Dataproc默认开启该配置),作业运行完成后容器日志会被统一上传到HDFS的/var/log/hadoop-yarn/apps路径下,你可以直接使用yarn logs -applicationId <目标应用ID>命令导出指定应用的所有容器日志,不需要单独登录每个工作节点查找。
你在/tmp目录下找不到相关日志属于正常情况,该目录仅存储Spark任务的临时运行文件,不会存放YARN管理的容器日志。
UI无法访问容器stdout/stderr问题排查
- 确认你访问UI的方式合规:Dataproc集群的Web UI默认不开放公网访问,如果你直接复制UI内的链接用公网IP访问,必然会出现无法访问站点的提示。你可以使用Dataproc官方提供的组件网关功能,或者在本地建立SSH隧道的方式访问UI,所有UI跳转链接都需要在代理访问的场景下才能正常打开。
- 检查集群日志聚合配置:如果集群开启了日志聚合,作业运行完成后工作节点本地的容器日志会被自动清理,此时UI直接访问节点本地日志路径会找不到资源,你可以通过
yarn logs命令或者云控制台的Dataproc作业详情页查看对应日志。 - 确认目标工作节点状态:如果存储日志的工作节点已经被销毁(比如使用了可抢占虚拟机、触发了集群自动缩容规则),节点上的本地日志会随之消失,UI跳转自然无法正常访问。
内容的提问来源于stack exchange,提问作者nonoDa
相关产品推荐
相关产品推荐

