有关 Azure Databricks 的常见问题解答

本文列出了用户可能会遇到的与 Azure Databricks 相关的常见问题。 以及使用 Databricks 时可能会遇到的一些常见问题。 有关详细信息,请参阅什么是 Azure Databricks

是否可以使用 Azure Key Vault 来存储要在 Azure Databricks 中使用的密钥/机密?

是的。 可以使用 Azure Key Vault 来存储要用于 Azure Databricks 的密钥/机密。 有关详细信息,请参阅 Azure Key Vault 支持的作用域

是否可以将 Azure 虚拟网络与 Databricks 配合使用?

是的。 可以将 Azure 虚拟网络 (VNET) 与 Databricks 配合使用。 有关详细信息,请参阅在 Azure 虚拟网络中部署 Azure Databricks

如何使用笔记本访问 Azure Data Lake Storage?

执行以下步骤:

  1. 在 Microsoft Entra ID(以前称为 Azure Active Directory)中预配服务主体并记录其密钥。
  2. 在 Data Lake Storage 中分配服务主体的必需权限。
  3. 若要访问 Data Lake Storage 中的文件,请使用 Notebook 中的服务主体凭据。

解决常见问题

以下是使用 Databricks 时可能会遇到的一些问题。

问题:该订阅未注册为使用命名空间“Microsoft.Databricks”

错误消息

“该订阅未注册为使用命名空间‘Microsoft.Databricks’。 有关如何注册订阅,请参阅 https://aka.ms/rps-not-found。 (代码:MissingSubscriptionRegistration)”

解决方案

  1. 转到 Azure 门户
  2. 依次选择“订阅”、正在使用的订阅,然后单击“资源提供程序”
  3. 在资源提供程序列表中,针对“Microsoft.Databricks”选择“注册”。 必须具有订阅的参与者或所有者角色才能注册资源提供程序。

问题:在 Azure 门户中,你的帐户 {email} 没有 Databricks 工作区资源的“所有者”或“参与者”角色

错误消息

“在 Azure 门户中,你的帐户 {email} 没有 Databricks 工作区资源的‘所有者’或‘参与者’角色。 如果你是租户中的来宾用户,也可能发生此错误。 请让管理员授予你访问权限,或直接在 Databricks 工作区中将你添加为用户。”(代码:AADSTS90015)

解决方案

以下是此问题的一些解决方法:

如果你是一个不具备 Databricks 工作区资源“所有者”或“参与者”角色的 Azure Databricks 用户,并且只想访问工作区:

  • 你应直接使用 URL(例如 https://adb-5555555555555555.19.databricks.azure.cn)访问它。 请勿使用 Azure 门户中的“启动工作区”按钮。

如果你希望被识别为工作区资源的“所有者”或“参与者”:

  • 若要初始化租户,必须以租户的常规用户(而非来宾用户)身份登录。 你还必须具有 Databricks 工作区资源的“参与者”或“所有者”角色。 管理员可以从 Azure 门户的 Azure Databricks 工作区中的“访问控制(IAM)”选项卡授予用户某个角色。

  • 如果电子邮件域名在 Microsoft Entra ID(前 Azure Active Directory)中被分配给多个目录,也可能会发生此错误。 若要解决此问题,可在包含订阅和 Databricks 工作区的目录中创建新用户。

    a. 在 Azure 门户中,转到 Microsoft Entra ID(前 Azure Active Directory)。 依次选择“用户和组”>“添加用户”。

    b. 使用 @<tenant-name>.partner.onmschina.cn 电子邮件而非 @<your-domain> 电子邮件添加用户。 可以在 Azure 门户中的 Microsoft Entra ID(前 Azure Active Directory)下的自定义域中找到此选项。

    c. 授予新用户 Databricks 工作区资源的“参与者”角色

    d. 使用新用户登录到 Azure 门户,并找到 Databricks 工作区。

    e. 以此用户的身份启动 Databricks 工作区。

问题:你的帐户 {电子邮件} 未在 Databricks 中注册

解决方案

如果你未创建工作区,但要添加为用户,请联系创建工作区的人员。 让他通过 Azure Databricks 管理员控制台添加。 有关说明,请参阅 Adding and managing users(添加和管理用户)。 如果已创建该工作区但仍出现此错误,请尝试再次在 Azure 门户中单击“初始化工作区”

问题:设置群集时,云提供程序启动失败 (PublicIPCountLimitReached)

错误消息

“云提供程序启动故障: 在设置群集时遇到云提供程序错误。 有关详细信息,请参阅“Databricks 指南”。 Azure 错误代码:PublicIPCountLimitReached。 Azure 错误消息:在此区域该订阅不能创建超过 10 个公共 IP 地址。”

背景

Databricks 群集为每个节点(包括驱动程序节点)使用一个公共 IP 地址。 对每个区域,Azure 订阅均具有公共 IP 地址限制。 因此,如果群集创建和纵向扩展操作导致分配给该区域中的该订阅的公共 IP 地址数量超过限制,则群集创建和纵向扩展操作可能会失败。 此限制还包括分配给非 Databricks 使用的公共 IP 地址,例如自定义用户定义的 VM。

通常,群集仅在处于活动状态时才使用公共 IP 地址。 但短时间内可能会继续发生 PublicIPCountLimitReached 错误,即使在其他群集终止后也是如此。 原因在于:群集终止后,Databricks 会暂时缓存 Azure 资源。 资源缓存是设计使然,因为它可以在许多常见方案中显著降低群集启动和自动缩放的延迟。

解决方案

如果订阅已达到指定区域的公共 IP 地址限制,则应执行以下的其中一项操作。

  • 在不同 Databricks 工作区中新建群集。 另一个工作区必须位于尚未达到订阅的公共 IP 地址限制的区域。
  • 请求提高公共 IP 地址限制。 选择“配额”作为“问题类型”、选择“网络: ARM”作为“配额类型”。 在“详细信息”中,请求增加公共 IP 地址配额。 例如,如果限制当前为 60,但希望创建具有 100 个节点的群集,则请求将限制增加至 160。

问题:设置群集时,第二种类型的云提供程序启动失败 (MissingSubscriptionRegistration)

错误消息

“云提供程序启动故障: 在设置群集时遇到云提供程序错误。 有关详细信息,请参阅“Databricks 指南”。 Azure 错误代码:MissingSubscriptionRegistration;Azure 错误消息:订阅未注册为使用命名空间“Microsoft.Databricks”。 有关如何注册订阅,请参阅 https://aka.ms/rps-not-found

解决方案

  1. 转到 Azure 门户
  2. 依次选择“订阅”、正在使用的订阅,然后单击“资源提供程序”
  3. 在资源提供程序列表中,针对“Microsoft.Compute”选择“注册”。 必须具有订阅的参与者或所有者角色才能注册资源提供程序。

有关详细说明,请参阅资源提供程序和类型

问题:Azure Databricks 需要只有管理员可以授予的访问组织中资源的权限。

背景

Azure Databricks 已与 Microsoft Entra ID(以前称为 Azure Active Directory)相集成。 你可以通过指定 Microsoft Entra ID(前 Azure Active Directory)中的用户在 Azure Databricks 中(例如,在笔记本或群集上)设置权限。 要使 Azure Databricks 能够列出 Microsoft Entra ID(前 Azure Active Directory)中的用户名称,它需要对该信息的读取权限并需要得到同意。 如果许可尚不可用,将看到错误。

解决方案

以全局管理员身份登录到 Azure 门户。 对于 Microsoft Entra ID(前 Azure Active Directory),请转到“用户设置”选项卡并确保“用户可以同意应用代表他们访问公司数据”设置为“是”

问题:Azure Databricks 不支持在使用中文字符创建的 Azure 资源组下创建工作区。

解决方案

以后的版本中将支持在工作区创建过程中验证此方案。

后续步骤