经典计算终止错误代码

本文提供有关常见群集终止错误代码的故障排除指南。 使用 群集事件日志 中的错误代码查找相关原因和建议的修补程序。

AZURE_OPERATION_NOT_ALLOWED_EXCEPTION

Azure 操作因权限限制、策略冲突或帐户限制而失败。

示例错误消息

Encountered error while client authentication.

故障排除步骤

  1. 查看 Azure 活动日志以了解详细的错误信息。
  2. 检查资源组的服务主体权限。
  3. 验证 Azure 策略是否未阻止操作。
  4. 检查订阅状态和状态。
  5. 查看最近对权限或策略的更改。

建议的修补程序

向服务主体授予所需的权限,更新 Azure 策略(如果它们正在阻止操作),验证订阅是否处于活动状态,或解决任何帐户限制。 请联系 Azure 支持人员获取有关权限配置的帮助。

AZURE_QUOTA_EXCEEDED_EXCEPTION

群集启动将超过所请求 VM 系列的 Azure 订阅配额限制。

示例错误消息

Operation could not be completed as it results in exceeding approved standardDSv2Family Cores quota. Additional details - Deployment Model: Resource Manager, Location: westeurope, Current Limit: 350, Current Usage: 344, Additional Required: 8, (Minimum) New Limit Required: 352.

故障排除步骤

  1. 在 Azure 门户中的 “订阅 > 使用情况 + 配额”下检查当前配额使用情况。
  2. 确定超出哪个 VM 系列配额。
  3. 查看订阅中的所有正在运行的 VM 和群集。
  4. 检查最近的群集启动是否增加了使用量。

建议的修补程序

通过 Azure 门户请求增加配额、终止未使用的群集以释放配额,或使用具有可用配额的不同 VM 类型。 请联系 Azure 支持部门获取配额增加帮助。

BOOTSTRAP_TIMEOUT_DUE_TO_MISCONFIG

VM 启动过程因网络连接问题、项目下载缓慢或云提供商问题而超时。 启动超时为 700 秒。

示例错误消息

[id: InstanceId([REDACTED]), status: INSTANCE_INITIALIZING, ...] with threshold 700 seconds timed out after 703891 milliseconds. Instance bootstrap inferred timeout reason: UnknownReason

故障排除步骤

  1. 检查与 Databricks 项目存储的连接。
  2. 验证与 Databricks 控制平面的连接。
  3. 检查 Databricks 终结点的 DNS 解析。
  4. 验证防火墙和安全组规则。
  5. 测试问题是一致的还是间歇性的。

建议的修补程序

确保与 Databricks 存储和控制平面建立网络连接。 配置服务终结点或VP 终结点,以提高网络性能。 查看防火墙、DNS 和路由配置。 如果验证网络配置,请联系 Databricks 支持部门,但超时仍然存在。

CLOUD_PROVIDER_RESOURCE_STOCKOUT

Azure 暂时超出所选区域或区域中请求的 VM 大小的容量。

示例错误消息

The requested VM size for resource 'Following SKUs have failed for Capacity Restrictions: Standard_DS3_v2' is currently not available in location 'westeurope'. Please try another size or deploy to a different location or different zone. See https://aka.ms/azureskunotavailable for details.

故障排除步骤

  1. 检查 Azure 服务运行状况仪表板 ,了解已知的容量问题。
  2. 验证问题是否影响特定区域或整个区域。
  3. 检查问题是否特定于 VM 大小。
  4. 检查问题是否影响现成 VM 与按需 VM。

建议的修补程序

重试群集启动,尝试不同的可用性区域,使用 auto 可用性区域设置,尝试备用 VM 大小,或等待 Azure 还原容量。 如果问题仍然存在,请联系 Azure 支持人员,获取估计的容量还原时间。

CLOUD_PROVIDER_LAUNCH_FAILURE

云提供商未能启动请求的 VM 实例。 这通常是云提供商端问题。

示例错误消息

Reason: CLOUD_PROVIDER_LAUNCH_FAILURE (CLOUD_FAILURE). Parameters: databricks_error_message:The VM launch timed out. Possible causes include a full subnet, insufficient available public IPs, quota limits being exceeded, cloud provider throttling, resource conflict, or a transient issue with the cloud provider. [details] LAUNCH_TIMEOUT: timeout after 1200073 milliseconds with threshold 1200 seconds(OnDemand), instance_id:[REDACTED]

故障排除步骤

  1. 检查 azure_error_message 特定云提供商故障的错误参数。
  1. 检查云提供商状态页,了解区域中正在进行的事件。
  2. 如果错误提到这些限制,请查看配额限制和子网容量。

建议的修补程序

请稍后重试,因为大多数云提供商启动失败都是暂时性的。 如果问题仍然存在,请与云提供商支持部门联系,并查看详细信息中的特定详细错误。

COMMUNICATION_LOST

群集已终止,因为控制平面与实例失去了通信。 这可能是由意外实例状态、实例终止或网络级别问题导致的,其中控制平面无法长时间 ping 实例。

示例错误消息

Cluster '[REDACTED]' was terminated. Reason: COMMUNICATION_LOST (CLOUD_FAILURE). Parameters: instance_id:[REDACTED], databricks_error_message:Node health check failed.

故障排除步骤

  1. 检查 Azure Databricks 计算平面与 SCC 中继终结点之间的网络配置。 如果防火墙或代理之间存在防火墙或代理,可能会阻止运行状况检查通信。 咨询网络管理员。
  2. 在群集指标上检查节点的 CPU 和内存使用情况。 如果资源已用尽,则实例可能无法响应运行状况检查。 请考虑使用更大的实例类型。
  3. 请与云提供商核实实例是否在外部终止或受损(例如 AWS 实例停用、Azure 主机维护)。
  4. 查看 Spark 驱动程序和执行程序日志,了解可能导致实例无响应(例如 OOM 或长 GC 暂停)的错误。

建议的修补程序

与网络管理员一起查看防火墙和代理设置。 如果错误是由云提供商终止实例引起的,请稍后再试。 如果资源耗尽导致,请考虑升级到更大的实例类型。 如果问题仍然存在,请联系 Databricks 支持部门。

CONTROL_PLANE_REQUEST_FAILURE_DUE_TO_MISCONFIG

由于 DNS 解析失败、防火墙规则或网络配置错误,VM 无法访问 Azure Databricks 控制平面。

示例错误消息

Network health check reported that instance is unable to reach Databricks Control Plane. Please check that instances have connectivity to the Databricks Control Plane. Instance bootstrap inferred timeout reason: NetworkHealthCheck_CP_Failed

故障排除步骤

  1. 解码群集事件日志中任何 Base64 编码的错误消息。
  2. 检查网络配置中的 DNS 设置。
  3. 查看防火墙规则和网络安全设置。
  4. 从同一网络中 VM 测试控制平面连接。
  5. 验证自定义 DNS 服务器是否正常运行且可访问。

对于 Azure 环境,还要检查 Azure Databricks 子网上的 UDR(User-Defined 路由)配置和 NSG 规则。

建议的修补程序

验证 DNS 服务器配置和可访问性。 确保防火墙规则允许出站流量流向 Azure Databricks 控制平面。

如果将 UDR 与防火墙配合使用,请确保 Azure Databricks 服务标记路由到 Internet。 使用 Azure DNS (168.63.129.16) 进行临时测试,以隔离 DNS 问题。

如果网络配置正确,请联系 Databricks 支持部门,但问题仍然存在。

DOCKER_IMAGE_PULL_FAILURE

由于网络、身份验证或配置问题,群集无法从容器注册表下载 Docker 映像。

示例错误消息

Failed to pull docker image: authentication required

故障排除步骤

  1. 验证群集配置中 Docker 映像名称和标记是否正确。
  2. 检查从工作区到容器注册表的网络连接。
  3. 从同一网络中 VM 测试注册表访问。
  4. 验证专用注册表的身份验证凭据。
  5. 查看节点守护程序日志,了解详细的错误消息。

建议的修补程序

更正 Docker 映像配置并验证身份验证凭据。 确保网络规则允许访问容器注册表。

对于 Azure 容器注册表(ACR),请在 VNet 中配置服务终结点。

如果配置正确,请联系 Databricks 支持部门,但问题仍然存在。

DOCKER_IMAGE_TOO_LARGE_FOR_INSTANCE_EXCEPTION

Docker 映像大小超出了所选实例类型的可用磁盘空间。

示例错误消息

Failed to launch container as the docker image is too large for the instance.

故障排除步骤

  1. 检查 Docker 映像大小。
  2. 查看实例类型的磁盘容量。
  3. 标识 Docker 映像中不必要的层或文件。
  4. 检查是否使用了多个大型图像。

建议的修补程序

使用具有较大磁盘容量的实例类型,通过删除不必要的文件和层来优化 Docker 映像,使用多阶段生成来减小映像大小,或跨多个较小的映像拆分功能。 请联系 Databricks 支持部门获取图像优化方面的帮助。

EOS_SPARK_IMAGE

为群集配置的 Databricks Runtime (DBR) 版本已终止支持(EOS)。

示例错误消息

Spark image release__11.0.x-snapshot-cpu-ml-scala2.12__databricks-universe__head__[REDACTED]__format-2 does not exist with exit code 2

故障排除步骤

  1. 检查群集配置中的 DBR 版本。
  2. 查看适用于 EOS 日期 的 Databricks Runtime 发行说明
  3. 确定当前支持哪些 DBR 版本。
  4. 检查笔记本或作业是否具有 DBR 版本依赖项。

建议的修补程序

更新群集配置以使用受支持的 Databricks Runtime 版本。 在部署到生产环境之前,请查看库和代码的兼容性要求。 如果需要 DBR 迁移方面的帮助,请联系 Databricks 支持部门。

HIVEMETASTORE_CONNECTIVITY_FAILURE

群集无法连接到 Hive 元存储,因为所需的网络端口 3306 未从经典计算平面打开到 Azure Databricks 控制平面。

示例错误消息

Azure Databricks classic compute plane will require connectivity to the Azure Databricks control plane over port 3306. Error message: Hive metastore connectivity check failed for <hms-url>

故障排除步骤

  1. 如果 requiredNsgRules 设置为 AllRules 工作区,请确认公共或专用子网上的网络安全组(NSG)允许从虚拟网络到 AzureDatabricks 端口 3306 的服务标记的出站连接。

  2. 如果使用 后端专用链接,请确认专用终结点是否允许端口 3306 上的连接,前提是在专用终结点上使用 NSG。

  3. 验证所有防火墙解决方案是否允许工作区的经典计算平面网络上的 端口 3306

  4. 如果使用用户定义的路由(UDR),请验证是否使用的是 Azure Databricks 服务标记 ,而不是允许列出单个路由到 Azure Databricks 服务。

  5. 若要验证连接性,请使用最新的 Databricks Runtime 版本启动单节点经典(非无服务器)计算资源,并在笔记本中运行以下验证脚本:

    import subprocess
    
    workspace_url = spark.conf.get("spark.databricks.workspaceUrl")
    host = subprocess.run(
        f"dig +short {workspace_url} | tail -n1",
        shell=True, capture_output=True, text=True
    ).stdout.strip()
    
    # Port 3306 check
    r1 = subprocess.run(
        f"nc -w2 -vz {host} 3306",
        shell=True, capture_output=True, text=True
    )
    if r1.returncode == 0:
        print("Port 3306 Connectivity: Success")
    else:
        print(f"Port 3306 Connectivity: Failure - check NSG/firewall/UDR configuration\n{r1.stdout}{r1.stderr}")
    
    # Metastore connectivity check
    r2 = subprocess.run(
        "openssl s_client -starttls mysql -tls1_2 -ignore_unexpected_eof "
        "-connect consolidated-westus-prod-metastore.mysql.database.azure.com:9207",
        shell=True, capture_output=True, text=True
    )
    if r2.returncode == 0:
        print("Metastore Connectivity: Success")
    else:
        print(f"Metastore Connectivity: Failure - check metastore connectivity\n{r2.stdout}{r2.stderr}")
    

    这两个检查必须显示“成功”。 如果任一操作失败,请查看 NSG、防火墙和 UDR 配置。

建议的修补程序

更新网络配置,以允许从经典计算平面到端口 3306 上的 Azure Databricks 控制平面的出站连接,并重新运行验证脚本以确认连接。

如果已完成 Unity 目录迁移或将 Hive 元存储联合为受 Unity 目录管理的外国目录,则现在可以 禁用对 Hive 元存储的访问

如果问题在验证网络配置后仍然存在,请联系 Azure Databricks 帐户团队或提交支持请求。

INSTANCE_POOL_MAX_CAPACITY_REACHED

实例池已达到其配置的最大容量限制,无法提供其他实例。

示例错误消息

Instance pool is full, please consider increasing the pool size

故障排除步骤

  1. 检查实例池配置中是否有最大容量设置。
  2. 查看池中当前正在使用的实例数。
  3. 确定使用池的群集。
  4. 检查是否有可以释放的空闲实例。

建议的修补程序

增加实例池最大容量、创建其他实例池以分配负载、使用池终止空闲群集,或将群集配置为使用不同的池。 根据并发工作负荷要求查看池大小调整。

INSTANCE_UNREACHABLE_DUE_TO_MISCONFIG

由于网络配置错误、防火墙规则或连接问题,实例无法访问。

示例错误消息

Bootstrap completes in the VM but control plane failed to reach the node. Please review your network configuration or firewall settings to allow Databricks to reach the node.

故障排除步骤

  1. 查看所需的入站端口的防火墙规则和网络安全设置。
  2. 测试从控制平面到实例网络的连接。
  3. 检查非对称路由问题。
  4. 查看防火墙日志,了解已删除的连接。
  5. 验证实例是否具有正确的安全组分配。

对于 Azure,还要检查 Azure Databricks 子网上的 NSG 入站规则,并验证是否已正确配置 UDR 路由表。

建议的修补程序

确保安全组或 NSG 允许来自 Azure Databricks 控制平面的所需入站流量。 验证路由表是否启用双向通信。 请联系 Databricks 支持人员,获取网络连接故障排除方面的帮助。

INVALID_ARGUMENT

无效的配置参数、缺少机密、不正确的权限或配置错误的群集设置阻止群集启动。

示例错误消息

com.databricks.backend.manager.secret.SecretPermissionDeniedException: User does not have permission with scope: [REDACTED] and key: [REDACTED]

故障排除步骤

  1. 查看错误消息以标识特定的无效参数。
  2. 对于机密错误,请使用 Databricks 机密 API 验证机密范围和密钥是否存在。
  3. 检查用户或服务主体权限以访问机密。
  4. 查看群集配置中的语法错误。
  5. 检查 init 脚本是否存在配置错误。

对于 Azure Key Vault 支持的机密,还要验证到 Key Vault 终结点的网络连接和 DNS 解析。

建议的修补程序

根据错误消息更正无效参数。 对于机密,请验证范围和密钥是否存在、检查权限,并确保与机密提供程序建立网络连接。 根据文档验证所有群集配置。 如果配置正确,请联系 Databricks 支持部门。

NETWORK_CHECK_CONTROL_PLANE_FAILURE

尝试到达 Azure Databricks 控制平面时,预启动网络运行状况检查失败。

示例错误消息

Instance failed network health check before bootstrapping with fatal error: X_NHC_CONTROL_PLANE_UNREACHABLE
1 failed component(s): control_plane
Retryable: true

故障排除步骤

  1. 查看群集事件日志以了解特定的连接失败详细信息。
  2. 从同一网络中 VM 测试控制平面连接。
  3. 检查防火墙是截获还是阻止流量。

对于 Azure,还要检查 Azure Databricks 子网上的 NSG 出站规则并验证 UDR 配置。 如果使用防火墙,请确保 Azure Databricks 服务标记路由到 Internet。

建议的修补程序

验证安全组或 NSG 规则是否允许出站流量流向 Azure Databricks 控制平面。 如果将 UDR 与防火墙配合使用,请确保 Azure Databricks 服务标记路由到 Internet。 如果网络配置已验证正确,请联系 Databricks 支持部门。

NETWORK_CONFIGURATION_FAILURE

网络配置错误阻止正确的 VM 或群集网络设置。

示例错误消息

Instance bootstrap failed command: AzureInvalidNic
Failure message: Azure instance did not set up route table correctly

故障排除步骤

  1. 查看防火墙和安全组或 NSG 规则。
  2. 检查路由表和路由配置。
  3. 验证子网配置。
  4. 检查 IP 地址冲突。
  5. 验证 DNS 设置。

建议的修补程序

根据特定错误更正网络配置。 确保安全组或 NSG 规则允许所需的流量、验证子网 CIDR 范围是否不重叠、检查路由表是否已正确配置,并确保 DNS 正常工作。 请联系 Databricks 支持部门进行网络配置评审。

NPIP_TUNNEL_SETUP_FAILURE

启动脚本未能在超时内设置 NPIP 隧道连接。 在云提供商启动实例并启动脚本尝试建立 SCC 中继隧道后,将发生这种情况。

示例错误消息

Cluster '[REDACTED]' was terminated. Reason: NPIP_TUNNEL_SETUP_FAILURE (SERVICE_FAULT). Parameters: databricks_error_message:VM setup failed due to Ngrok setup timeout. [details] NPIP_TUNNEL_SETUP_FAILURE: Instance bootstrap failed command: WaitForNgrokTunnel Failure message: Timed out waiting for ngrok tunnel to be up(OnDemand), instance_id:[REDACTED]

故障排除步骤

  1. 检查 SCC 中继与 Azure Databricks 计算平面子网之间的网络配置。
  2. 查看防火墙和代理设置,这些设置可能会阻止端口 443 或 6666 上的隧道设置。

建议的修补程序

确保从计算平面到 SCC 中继终结点的网络连接。 在 Azure Databricks 计算平面中启动一个实例,并检查 SCC 中继的连接:

nslookup <SCC relay fqdn>
nc -vz <SCC relay fqdn> 443

如果有防火墙或代理,请验证它是否允许流量流向所需端口上的中继。 请查阅公用网络配置文档,并确保已设置正确的出口规则,并且可以从你的VP/VNet 连接到 SCC 终结点。 如果问题发生,即使网络配置中没有问题,请联系 Databricks 支持部门。

REQUEST_THROTTLED

由于速率限制,对云提供商的 API 请求受到限制。

示例错误消息

TEMPORARILY_UNAVAILABLE: Too many requests from workspace [REDACTED]

故障排除步骤

  1. 检查多个群集是否同时启动。
  2. 查看帐户的 API 请求速率限制。
  3. 确定其他服务是否正在进行并发 API 调用。
  4. 检查是否自动系统发出频繁的请求。

建议的修补程序

减少并发群集启动、请求云提供商提高 API 速率限制、在自动化脚本中实现指数回退或错开群集启动时间。

SPOT_INSTANCE_TERMINATION

由于容量需求或定价更改,云提供商终止了现成或抢占实例。

示例错误消息

Server.SpotInstanceTermination: Spot instance termination

故障排除步骤

  1. 检查群集事件日志中是否有终止时间戳。
  2. 查看区域中的现成定价历史记录。
  3. 确定是否在特定时间终止。
  4. 检查多个实例是否同时终止。

建议的修补程序

切换到生产工作负荷的按需实例,实现作业重试逻辑来处理中断,或使用按需实例和现成实例的组合。 现成实例最适合容错工作负荷。

SPARK_STARTUP_FAILURE

Spark 驱动程序无法在配置的超时范围内启动。 当群集驱动程序实例上的驱动程序守护程序启动未在超时(通常为 200 秒)内完成时,可能会发生这种情况。

示例错误消息

Cluster '[REDACTED]' was terminated. Reason: SPARK_STARTUP_FAILURE (SERVICE_FAULT). Parameters: databricks_error_message:Spark failed to start: DEADLINE_EXCEEDED.
Cluster '[REDACTED]' was terminated. Reason: SPARK_STARTUP_FAILURE (SERVICE_FAULT). Parameters: databricks_error_message:Spark failed to start: Timed out after 200 seconds.

故障排除步骤

  1. 查看 Spark 配置中的错误配置(例如,无效的元存储 URI 或冲突设置)。
  2. 检查 init 脚本是否存在可能会延迟或阻止驱动程序启动的潜在错误。

建议的修补程序

删除自定义 Spark 配置和 init 脚本以隔离问题。 尝试其他实例类型,因为较小实例的硬件速度缓慢可能会导致驱动程序启动超时。 如果问题仍然存在,请联系 Databricks 支持部门,并提供群集 ID 和错误详细信息。

STORAGE_DOWNLOAD_FAILURE_SLOW

由于网络连接、防火墙或 DNS 问题,从 Azure Databricks 存储下载项目失败或太慢。

示例错误消息

Instance bootstrap failed command: Command_UpdateWorker
Failure message: Trying DNS probe for: https://[REDACTED].blob.core.windows.net/update/worker-artifacts/...

故障排除步骤

  1. 检查 Azure Databricks 存储终结点的防火墙规则。
  2. 验证存储 URL 的 DNS 解析。
  3. 测试同一网络中 VM 的下载速度。
  4. 查看网络带宽利用率。
  5. 检查代理或网络检查设备。
  6. 验证到存储终结点的路由。

建议的修补程序

确保防火墙规则允许访问 Azure Databricks 存储终结点。

在 VNet 中为 Azure 存储配置服务终结点。

查看和优化网络检查设备(如果存在)。 如果已验证与存储终结点的连接,但下载仍然失败,请联系 Databricks 支持部门。

SUBNET_EXHAUSTED_FAILURE

Azure 子网已用完可用 IP 地址。 每个 Azure Databricks 实例都需要专用子网和公共子网中的一个 IP 地址。

示例错误消息

Subnet /subscriptions/[REDACTED]/resourceGroups/[REDACTED]/providers/Microsoft.Network/virtualNetworks/VNET_DATA01_DEV/subnets/SN_DATABRICKS_CORE_PUBLIC with address prefix [REDACTED]/26 does not have enough capacity for 1 IP addresses.

故障排除步骤

  1. 检查 Azure 门户中的子网 CIDR 范围和可用地址。
  2. 查看子网中的网络接口数。
  3. 验证 Azure Databricks 工作区的子网配置。
  4. 计算 IP 要求:(节点数)×(2 个子网)= 所需的总 IP。

建议的修补程序

使用更少、更大的实例来减少 IP 消耗、清理子网中未使用的资源,或者创建具有更大子网 CIDR 范围的新工作区。 有关更新工作区子网配置的详细信息,请参阅 更新工作区网络 配置。 如果无法更改子网配置,请联系 Databricks 支持人员以获取工作区迁移帮助。

WORKSPACE_CONFIGURATION_ERROR

工作区级别的配置错误阻止群集启动,包括 IAM 角色或服务主体权限的问题。

故障排除步骤

  1. 查看最近对工作区配置的更改。
  2. 检查云提供商控制台中的策略或权限更改。
  1. 验证所有所需资源组的服务主体权限。

建议的修补程序

验证服务主体在所有资源组中是否具有所需的权限。 查看工作区安全配置。

如果工作区配置正确或跨帐户角色设置需要验证,请联系 Databricks 支持部门。