Azure Databricks运行Spark作业Spark driver 900秒内启动失败如何解决
Azure Databricks Spark驱动启动超时(900秒)排查方案
错误详情:
INTERNAL_ERROR: The Spark driver failed to start within 900 seconds
1. 集群配置合理性排查
- 优先验证驱动节点规格是否匹配业务需求:若作业依赖的Jar包、自定义代码包体积较大,或初始化逻辑复杂,低配驱动节点(如低于Standard_DS3_v2规格)极易出现初始化超时,可临时升级驱动节点规格测试启动是否恢复正常
- 核查*自定义初始化脚本(Init Script)*逻辑:初始化脚本存在下载资源阻塞、命令执行报错、死循环等问题时,会直接中断驱动启动流程,可临时移除所有自定义初始化脚本,验证集群能否正常启动
- 确认Spark自定义配置是否存在错误:如错误指定不存在的启动类、堆内存配置超出驱动节点物理内存上限等错误配置,都会导致驱动进程启动失败,可先重置为Databricks默认Spark配置测试
2. 依赖包配置排查
- 若作业配置了大量第三方Python/Java/R依赖,依赖包的拉取、安装过程会大幅拉长驱动启动耗时,可先移除非必要依赖,或提前将依赖预打包到自定义Databricks运行时镜像中,减少启动时的安装耗时
- 验证私有依赖源可用性:若配置了私有的PyPI、Maven镜像源,需确认驱动节点网络可正常访问该源,不会出现拉取依赖超时的情况
3. 网络与权限配置排查
- 若使用VNet注入模式的Databricks集群,需确认VNet关联的网络安全组(NSG)、路由表没有阻断Databricks控制平面与驱动节点的通信,也没有阻止驱动节点访问Azure存储、容器镜像仓库等必要服务
- 核查集群绑定的托管标识权限:若集群需要访问ADLS Gen2、Azure Key Vault等服务,托管标识缺失对应权限会导致驱动初始化过程鉴权失败卡住,可先给托管标识授予存储Blob数据参与者等必要权限测试
4. 临时应急方案
- 可在集群Spark配置中添加参数
spark.databricks.driver.startupTimeout 1800,将驱动启动超时时间从默认的900秒延长到1800秒,为初始化流程预留足够时间 - 单次报错可先尝试重启集群,偶发的底层计算资源调度异常也可能导致单次启动超时,重启后即可恢复
内容的提问来源于stack exchange,提问作者SWEETY SINGH
相关产品推荐
相关产品推荐

