你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
创建使用可用性区域的 HDInsight 群集
Azure HDInsight 群集由多个节点(头节点、工作器节点、网关节点和 zookeeper 节点)组成。 默认情况下,在支持可用性区域的区域中,用户无法控制在哪个可用性区域中预配哪些群集节点。
借助此新的可用性区域功能,用户现在可以指定哪个可用性区域应托管 HDInsight 群集的所有节点。 群集节点在物理上与另一个可用性区域隔离,并与同一区域中其他可用性区域故障隔离。 此部署模型还在群集中提供经济实惠、低延迟的网络连接。
将此部署模型复制到多个可用性区域可以提供更高级别的可用性,以防止出现硬件失败。
本文介绍如何在可用性区域中创建 HDInsight 群集,以及如何使用此功能实现更高的可用性。
开始之前
只有 6 月 15 日之后创建的群集才支持可用性区域功能。 创建群集后,无法更新可用性区域设置。 也不能更新现有非可用性区域群集来使用可用性区域。
先决条件和区域可用性
先决条件:
- 必须在自定义 VNet 下创建群集。
- 需要自带用于 Ambari DB 和外部元存储(如 Hive 元存储)的 SQL DB,以便可以在同一可用性区域中配置这些数据库。
目前可以在以下地区使用可用性区域创建 HDInsight 群集:
- 澳大利亚东部
- 巴西南部
- 加拿大中部
- 美国中部
- 美国东部
- 美国东部 2
- 法国中部
- 德国中西部
- 日本东部
- 韩国中部
- 北欧
- 东南亚
- 美国中南部
- 英国南部
- US Gov 弗吉尼亚州
- 西欧
- 美国西部 2
HDInsight 群集的可用性区域概述
可用性区域是某个区域内的非重复物理位置。 每个区域由一个或多个数据中心组成,这些数据中心配置了独立电源、冷却和网络。 在 Azure 中,一个区域包含一个或多个可用性区域。 数据中心发生故障时,区域中的可用性区域的物理隔离可保护应用程序和数据。 有关详细信息,请参阅 Azure 中的可用性区域是什么。
可将 Azure HDInsight 群集配置为部署在一个可用性区域中。 此 HDInsight 群集中的所有节点(包括两个头节点、三个 zookeeper 节点、两个网关节点和工作器节点)都将放置在指定的可用性区域中。 例如,美国东部有三个可用性区域。 可以使用可用性区域 1 中的所有节点创建美国东部的 HDInsight 群集。
通过这种方式将可用性区域与 HDInsight 群集一起使用可提供性能和成本优势:
- 由于网络连接延迟较低,因此性能更佳
- 成本更低:同一可用性区域中的数据传输是免费的。 跨可用性区域数据传输会产生额外的网络成本。
如果应用程序需要跨多个可用性区域实现高可用性,可以在一个可用性区域中创建一个主要 HDInsight 群集,并在另一个可用性区域中创建一个最小的辅助 HDInsight 群集,以节省成本。 使用此设计,如果其他可用性区域之一出现故障,此 HDInsight 群集不会受到影响。 如果此可用性区域出现故障,客户需要将不同可用性区域中的辅助群集切换到主要群集,将工作负载路由到此新的主要群集,并快速纵向扩展群集规模以进行数据处理。
使用可用性区域创建 HDInsight 群集
可以使用 Azure 资源管理器 (ARM) 模板将 HDInsight 群集部署到指定的可用性区域。
在资源部分,需要添加一个“区域”部分,并提供要将此群集部署到的可用性区域。
"resources": [
{
"type": "Microsoft.HDInsight/clusters",
"apiVersion": "2021-06-01",
"name": "[parameters('cluster name')]",
"location": "East US 2",
"zones": [
"1"
],
跨区域验证一个可用性区域中的节点
HDInsight 群集准备就绪后,可以检查位置,以查看它们所部署到的可用性区域。
获取 API 响应:
[
{
"location": "East US 2",
"zones": [
"1"
],
纵向扩展群集
可以纵向扩展具有很多工作器节点的 HDInsight 群集。 新添加的工作器节点将放置在此群集的同一可用性区域中。
最佳实践
- 定期备份 Ambari DB 中的配置。
- 实现逻辑以轻松地将工作负载路由到辅助群集。
AZ 关闭时,会发生什么
- 无法通过 SSH 访问此群集
- 无法删除或纵向扩展或缩减此群集
- 无法提交作业或查看作业历史记录
- 仍然可以在不同的区域提交新的群集创建请求