You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何导出Azure Databricks中的完整Spark UI日志供他人分析?

解决Azure Databricks导出Spark作业日志(含Spark UI内容)的问题

一、排查spark.eventLog.dir生成空文件的原因

  • 必须提前启用事件日志:仅设置spark.eventLog.dir无法生成日志,需同时启用事件日志,且要在作业/集群启动前配置(不可运行时动态设置)。正确配置参数如下:
    spark.eventLog.enabled true
    spark.eventLog.dbfs.dir dbfs:/path/to/your/event/logs
    
    配置方式:
    • 单作业:在作业的「高级选项」→「Spark配置」中添加上述两行
    • 集群全局:在集群的「Spark配置」中设置,所有提交到该集群的作业都会生成事件日志
  • 检查DBFS路径权限:确保作业运行身份(用户/服务主体)对目标DBFS路径有读写权限,可通过笔记本执行dbutils.fs.ls("dbfs:/path/to/your/event/logs")验证路径可访问性

二、导出完整日志并分享给无工作区权限人员的方法

1. 导出Spark事件日志(对应Spark UI内容)

日志正确生成后会以.lzf压缩格式存储在目标DBFS路径,可通过以下方式导出:

  • 使用Databricks CLI下载到本地:
    databricks fs cp dbfs:/path/to/your/event/logs/<job-run-id>/*.lzf ./local-directory/
    
  • 在笔记本中用dbutils.fs.cp将日志复制到Azure Blob Storage/ADLS,生成SAS链接分享给他人

他人查看方式:
用本地Spark环境启动历史服务器加载日志:

spark-class org.apache.spark.deploy.history.HistoryServer --spark.history.fs.logDirectory=file:///path/to/local/logs

访问http://localhost:18080即可查看完整Spark UI内容

2. 导出作业stderr/stdout与Log4j日志

  • 直接在作业「运行详情」页面点击「下载日志」按钮,获取日志压缩包
  • 集群运行的作业日志还会存于dbfs:/cluster-logs/<cluster-id>/<job-run-id>路径,可通过CLI或dbutils下载后分享

3. 静态HTML版Spark UI报告(无需Spark环境)

用第三方工具将事件日志转为静态HTML,方便无Spark环境的人员查看:
安装spark-event-log-to-html工具后执行:

spark-event-log-to-html /path/to/local/event.log.lzf -o /path/to/output/html

生成的HTML文件夹可直接分享,用浏览器打开即可查看完整Spark UI内容

注意事项

  • Spark事件日志仅包含作业执行详情(对应Spark UI),集群节点系统日志需单独导出
  • 分享SAS链接时需设置合理过期时间,避免权限泄露

内容的提问来源于stack exchange,提问作者Łukasz Kastelik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:25:53