Databricks集群Spark驱动日志与事件日志缺失,仅生成Executor日志求助
排查与解决步骤
1. 核对集群日志配置
- 确认集群日志挂载路径:进入集群配置→高级选项→日志,检查路径是否指向正确的Blob容器目录,注意路径末尾需带斜杠(如
/dbfs/mnt/logs/),格式错误会导致Driver日志无法写入。 - 验证挂载点权限:执行
dbutils.fs.ls("/mnt/your-log-path"),确认集群服务账号对该路径具备读写权限,近期存储权限或挂载配置变更可能引发权限不足问题。
2. 检查Driver节点Log4j配置
- 查看当前Driver的Log4j配置:在集群中运行
%sh cat /databricks/spark/dbconf/log4j/driver/log4j.properties,对比正常集群的配置,重点确认:rootLogger是否同时包含console和file输出端log4j.appender.file的输出路径是否指向挂载的Blob目录
- 若配置被篡改,可通过初始化脚本重置:在集群高级选项→初始化脚本中添加以下内容,重启集群生效:
#!/bin/bash cp /databricks/spark/dbconf/log4j/driver/log4j.properties.default /databricks/spark/dbconf/log4j/driver/log4j.properties
3. 检查Driver进程与本地日志
- 查看Driver本地日志目录:执行
%sh ls -l /dbfs/databricks/logs/,确认是否有Driver相关日志文件。若本地存在但Blob中无,说明挂载同步或路径配置有误。 - 查看Driver启动日志:在集群UI的「事件日志」中检查Driver启动过程,是否有日志初始化失败的报错(如权限不足、路径不存在)。
4. 回溯近期集群变更
- 排查以下可能的变更操作:
- Runtime版本升级(Spark版本变更可能引发Log4j配置兼容问题)
- 挂载点配置修改(重新挂载时权限或路径变更)
- 集群级Log4j配置或初始化脚本修改
- Blob容器SAS密钥过期、权限缩小等存储配置变更
- 尝试回退到之前正常的集群配置(如相同Runtime版本、挂载参数),验证日志是否恢复正常。
5. 修复Blob目录结构
- 对比正常集群的Blob日志目录,异常集群可能缺失
driver子目录。手动创建目录:dbutils.fs.mkdirs("/mnt/your-log-path/driver"),重启集群后观察日志生成情况。
内容的提问来源于stack exchange,提问作者Tizen
相关产品推荐
相关产品推荐

