意外的集群终止

了解如何排除Databricks集群意外停止的故障。

写的亚当Pavlacka

最后发布时间:2022年3月4日

有时集群会意外终止,而不是由于手动终止或者配置自动终止。由于多种原因可以终止集群。有些终止是由Databricks发起的,而其他终止是由云提供商发起的。本文介绍了终止合同的原因和补救措施。

数据库发起请求超过限制

为了防止API滥用,确保服务质量,并防止您意外地创建过多的大型集群,Databricks限制了所有集群增加请求,包括集群创建、启动和调整大小。节流使用令牌桶算法在Databricks部署中限制任何人可以在定义的间隔内启动的节点总数,同时允许特定大小的突发请求。来自web UI和api的请求都受到速率限制。当集群请求超过速率限制时,超过限制的请求失败REQUEST_LIMIT_EXCEEDED错误。

解决方案

如果您达到了合法工作流的限制,Databricks建议您执行以下操作:

  • 几分钟后重试您的请求。
  • 在计划的时间范围内均匀地展开重复的工作流程。例如,不要安排你所有的工作要以每小时为边界运行,请尝试在一小时内以不同的间隔分配它们。
  • 考虑使用具有较大节点类型节点数量更少。
  • 使用自动定量集群。

如果这些选项对您不起作用,请联系Databricks Support请求提高核心实例的限制。

有关Databricks发起终止的其他原因,请参见终止代码

云提供商发起的终止

本文列出了与云提供商相关的常见终止原因和补救步骤。

AWS

供应商限制

Databricks通过代表您的云帐户请求资源来启动集群。有时,这些请求会失败,因为它们会超过您的云帐户的资源限制。在AWS中,常见的错误代码包括:

InstanceLimitExceeded

AWS限制每种节点类型的运行实例数量。可能的解决方案包括:

  • 请求一个节点较少的集群。
  • 请求具有不同节点类型的集群。
  • 请求AWS支持增加实例限制

客户端。VolumeLimitExceeded

创建集群请求超过EBS卷极限。AWS有两种类型的卷限制:对EBS卷的总数的限制和对EBS卷的总存储大小的限制。可能的补救措施:

  • 请求一个节点较少的集群。
  • 检查超出了两个限制中的哪一个。(AWS可信顾问显示免费服务限制)。如果请求超过了EBS卷的总数,请尝试减少每个节点请求的卷数量。如果请求超过了总EBS存储大小,请尝试减少请求的存储大小和/或EBS卷的数量。
  • 请求AWS支持提高EBS音量限制

RequestLimitExceeded

AWS限制API请求的速率提交给AWS帐户。请稍等片刻,然后重试请求。

供应商关闭

Spark驱动程序是一个单点故障,因为它保存了所有的集群状态。如果承载驱动程序节点的实例被关闭,Databricks将终止集群。在AWS中,常见的错误代码包括:

客户端。使用rInitiatedShutdown

实例被直接请求AWS终止,该请求不是来自Databricks。有关详细信息,请与AWS管理员联系。

服务器。InsufficientInstanceCapacity

AWS无法满足实例请求。等待一段时间后重试该请求。如果问题仍然存在,请联系AWS支持人员。

服务器。SpotInstanceTermination

实例已被AWS终止,因为当前现货价格已超过此实例的最大出价。为驱动程序使用按需实例、选择不同的可用性区域或指定更高的现货竞价。

有关其他与关闭相关的错误代码,请参见AWS文档

删除

发射失败

AWS

在AWS中,常见的错误代码包括:

UnauthorizedOperation

没有授权Databricks启动所请求的实例。可能的原因包括:

  • 您的AWS管理员已使用于启动实例的AWS访问密钥或IAM角色无效。
  • 您正在尝试使用Databricks没有权限使用的IAM角色启动集群。请联系设置IAM角色的AWS管理员。有关更多信息,请参见通过IAM角色安全访问S3桶

不支持,提示“您所请求的配置不支持ebs优化实例”

所选实例类型在所选可用分区中不存在。它实际上与启用ebs优化没有任何关系。为了补救,您可以选择不同的实例类型或AZ。

AuthFailure。ServiceLinkedRoleCreationNotPermitted

所提供的凭据没有为EC2现货实例创建服务链接角色的权限。Databricks管理员需要更新用于在您的帐户中启动实例的凭据。说明和更新的策略可以在这里找到AWS帐户

看到错误代码以获取AWS错误代码的完整列表。

删除

Azure

此终止原因发生在Azure Databricks无法获取虚拟机时。来自API的错误代码和消息将被传播,以帮助您排除问题。

OperationNotAllowed

您已达到订阅可以启动的配额限制(通常是内核数)。请求增加Azure门户的限制。看到Azure订阅和服务限制、配额和约束

PublicIPCountLimitReached

您已达到可以运行的公共ip的限制。请求增加Azure门户的限制。

SkuNotAvailable

所选资源SKU(例如虚拟机大小)对于所选位置不可用。要解决此问题,请参见解决SKU不可用的错误

ReadOnlyDisabledSubscription

您的订阅已被禁用。按照下面的步骤操作为什么我的Azure订阅被禁用,如何重新激活它?重新激活您的订阅。

ResourceGroupBeingDeleted

如果有人取消Azure门户中的Azure Databricks工作空间,而您试图同时创建集群,则可能会发生这种情况。资源组正在删除,集群故障。

SubscriptionRequestsThrottled

您的订阅已达到Azure资源管理器请求限制(请参阅节流资源管理器请求).典型的原因是Azure Databricks之外的另一个系统对Azure进行了大量的API调用。联系Azure支持来识别这个系统,然后减少API调用的数量。

删除

沟通了

Databricks能够启动集群,但失去了与承载Spark驱动程序的实例的连接。

AWS

由不正确的网络配置(例如,更改Databricks worker的安全组设置)或暂时性AWS网络问题引起。

删除

Azure

由驱动虚拟机宕机或网络问题引起。

删除