Azure HDInsight:群集创建错误
本文介绍在创建群集时可能遇到的错误的解决方法。
备注
本文所述的前三个错误是验证错误。 当 Azure HDInsight 产品使用 CsmDocument_2_0 类时,可能会发生这些错误。
错误:“无法通过 URI:<脚本操作 URL> 访问脚本操作位置”
“远程服务器返回错误:(404)未找到。”
HDInsight 服务无法访问作为“创建群集”请求的一部分提供的脚本操作 URL。 当该服务尝试访问该脚本操作时,会收到上述错误消息。
- 对于 HTTP 或 HTTPS URL,请尝试从 Incognito 浏览器窗口转到该 URL 进行验证。
- 对于 WASB URL,请确保该脚本在请求中指定的存储帐户中存在。 另请确保此存储帐户的存储密钥正确。
- 对于 ADLS URL,请确保该脚本在存储帐户中存在。
“给定的脚本 URI <脚本 URI> 在 ADLS 中,但此群集没有 Data Lake Storage 主体”
HDInsight 服务无法访问作为“创建群集”请求的一部分提供的脚本操作 URL。 当该服务尝试访问该脚本操作时,会收到上述错误消息。
将相应的 Azure Data Lake Storage Gen 1 帐户添加到群集。 此外,将用于访问 Data Lake Storage Gen 1 帐户的服务主体添加到群集。
“请求中提供的 VM 大小‘<客户指定的 VM 大小>’无效或不受角色‘<角色>’的支持。 有效值是:<VALID_VM_SIZE_FOR_ROLE>。”
该角色不允许指定的虚拟机大小。 此错误的可能原因是 VM 大小值不符合预期,或者不适合该计算机角色。
错误消息列出了 VM 大小的有效值。 请选择其中的一个值,然后重试“创建群集”请求。
“VirtualNetworkId 无效。 VirtualNetworkId‘<用户虚拟网络 ID>’*”
在群集创建过程中指定的 VirtualNetworkId 值的格式不正确。
确保 VirtualNetworkId 和子网值采用正确的格式。 若要获取 VirtualNetworkId 值:
- 转到 Azure 门户。
- 选择你的虚拟网络。
- 选择“属性”菜单项。 ResourceID 属性值即为 VirtualNetworkId 值。
下面是虚拟网络 ID 的示例:
“/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet”
“群集部署因自定义脚本操作出错而失败。 失败的操作:<SCRIPT_NAME>,请转到 Ambari UI 以进一步调试错误。”
成功部署群集后,将执行“创建群集”请求期间提供的自定义脚本。 此错误代码指示在执行名为 <SCRIPT_NAME> 的自定义脚本时遇到错误。
由于这是你的自定义脚本,因此我们建议排查问题,并根据需要重新运行该脚本。 若要排查脚本错误,请检查 /var/lib/ambari-agent/* 文件夹中的日志。 或者,在 Ambari UI 中打开“操作”页,然后选择“run_customscriptaction”操作查看错误详细信息。
“数据库 <DATABASE_NAME> 中的 <META_STORE_TYPE> 元存储架构版本 <METASTORE_MAJOR_VERSION> 与群集版本 <CLUSTER_VERSION> 不兼容”
自定义元存储与所选的 HDInsight 群集版本不兼容。 目前,HDInsight 4.0 群集仅支持元存储版本 3.0 和更高版本,而 HDInsight 3.6 不支持元存储版本 3.0 和更高版本。
仅使用 HDInsight 群集版本支持的元存储版本。 如果未指定自定义元存储,HDInsight 将在内部创建元存储,并在删除群集后删除此元存储。
“无法连接到群集管理终结点来执行缩放操作。 验证网络安全规则是否未阻止从外部访问群集,以及是否可以成功访问群集管理器 (Ambari) UI。”
网络安全组 (NSG) 中的某个防火墙规则阻止了群集与关键 Azure 运行状况和管理服务的通信。
如果你打算使用网络安全组来控制网络流量,请在安装 HDInsight 之前执行以下操作:
- 确定计划用于 HDInsight 的 Azure 区域。
- 确定 HDInsight 所需的 IP 地址。 有关详细信息,请参阅 HDInsight 管理 IP 地址。
- 为计划将 HDInsight 安装到其中的子网创建或修改网络安全组。
- 对于网络安全组,请在端口 443 上允许来自 IP 地址的入站流量。 此配置确保 HDInsight 管理服务可以从虚拟网络外部访问群集。
“托管标识对存储帐户没有权限。 请验证是否已将“存储 Blob 数据所有者”角色分配给存储帐户的托管标识。 存储:/subscriptions/ <Subscription ID> /resourceGroups/<资源组名称> /providers/Microsoft.Storage/storageAccounts/ <存储帐户名称>,托管标识:/subscriptions/ <Subscription ID> /resourceGroups/ /<资源组名称> /providers/Microsoft.ManagedIdentity/userAssignedIdentities/ <用户托管标识名称>”
未提供管理标识所需的权限。 用户分配的托管标识没有 Azure Data Lake Storage Gen2 存储帐户的 Blob 存储参与者角色。
- 打开 Azure 门户。
- 转到存储帐户。
- 查看“访问控制(IAM)”。
- 确保为该用户分配了“存储 Blob 数据参与者”角色或“存储 Blob 数据所有者”角色 。
有关详细信息,请参阅在 Data Lake Storage Gen2 帐户中设置托管标识的权限。
“配置了子网 /subscriptions/<订阅 ID>/resourceGroups/<资源组名称> RG-westeurope-vnet-tomtom-default/providers/Microsoft.Network/virtualNetworks/<虚拟网络名称>/subnets/<子网名称> 的网络安全组 /subscriptions/<订阅 ID>/resourceGroups/<资源组名称> default/providers/Microsoft.Network/networkSecurityGroups/<网络安全组名称> 中的安全规则不允许建立所需的入站和/或出站连接。 "
如果网络安全组或用户定义的路由 (UDR) 控制流向 HDInsight 群集的入站流量,请确保群集能够与关键的 Azure 运行状况和管理服务通信。
如果你打算使用网络安全组来控制网络流量,请在安装 HDInsight 之前执行以下操作:
- 确定要用于 HDInsight 的 Azure 区域,并为该区域创建安全的 IP 地址列表。 有关详细信息,请参阅运行状况和管理服务:特定区域。
- 确定 HDInsight 所需的 IP 地址。 有关详细信息,请参阅 HDInsight 管理 IP 地址。
- 为计划将 HDInsight 安装到其中的子网创建或修改网络安全组。 对于网络安全组,请在端口 443 上允许来自 IP 地址的入站流量。 此配置确保 HDInsight 管理服务可以从虚拟网络外部访问群集。
“群集安装程序无法在一个或多个主机上安装组件。 请重试请求。”
通常,此错误是出现暂时性问题或 Azure 服务中断时生成的。
有关可能影响群集部署的任何 Azure 服务中断,请查看 Azure 状态页。 如果未发生服务中断,请重试群集部署。
无法连接到群集管理终结点。 请稍后重试。
尝试创建群集时,HDInsight 服务无法连接到群集
如果使用了自定义 VNet 网络安全组 (NSG) 和用户定义路由 (UDR),请确保群集可以与 HDInsight 管理服务通信。 有关其他信息,请参阅 HDInsight 管理 IP 地址。
错误代码:由于违反策略导致部署失败:策略禁止使用资源“<资源 URI>”。 策略标识符:'[{"policyAssignment":{"name":"<策略名称> ","id":"/providers/Microsoft.Management/managementGroups/<管理组名称> providers/Microsoft.Authorization/policyAssignments/<策略名称>"},"policyDefinition": <策略定义>
基于订阅的 Azure 策略可能会拒绝创建公共 IP 地址。 创建 HDInsight 群集需要两个公共 IP。
以下策略通常会影响群集创建:
- 阻止在订阅中创建 IP 地址或负载均衡器的策略。
- 阻止创建存储帐户的策略。
- 阻止删除网络资源(如 IP 地址或负载均衡器)的策略。
创建 HDInsight 群集时删除或禁用基于订阅的 Azure Policy 分配。
[{'code':'FailedToValidateStorageAccountErrorCode','message':'Failed to validate the storage account.'}]}
- 可以在 HDInsight 使用的 Azure Blob 存储帐户上启用 RA-GRS 或 RA-ZRS。 但是,不支持针对 RA-GRS 或 RA-ZRS 辅助终结点创建群集。
- HDInsight 不支持将 Data Lake Storage Gen2 设置为“读取访问异地区域冗余存储(RA-GZRS)”或“异地区域冗余存储(GZRS)”。
- 对于 Azure Blob 存储帐户,请勿使用 RA-GRS 或 RA-ZRS 辅助终结点创建 HDInsight 群集。 仅使用主终结点。
- 对于 Azure Data Lake Storage Gen2,请使用 GRS 或 RA-GRS 冗余。
若要详细了解如何排查群集创建问题,请参阅排查 Azure HDInsight 中的群集创建失败问题。