重新启动 HDInsight 群集的 VM
Azure HDInsight 群集包含作为群集节点的虚拟机 (VM) 组。 对于长时间运行的群集,这些节点可能因为各种原因而无法响应。 本文介绍如何在 HDInsight 群集中重新启动无响应的 VM。
何时重新启动
警告
重新启动群集中的 VM 时,该节点不可用,且节点上的服务必须重启。
节点重新启动时,群集可能会运行不正常,作业运行速度也可能会减慢或作业会失败。 如果正在尝试重新启动活动的头节点,则所有正在运行的作业都将停止。 在服务启动并再次运行之前,将无法向群集提交作业。 出于这些原因,仅应在必要时重新启动 VM。 在以下情况时,请考虑重新启动 VM:
- 你无法使用 SSH 连接到该节点,但它会响应 ping。
- 工作器节点在 Ambari UI 中未检测信号的情况下关闭。
- 节点上的临时磁盘已满。
- VM 上的进程表中有很多条目的进程已完成,但状态显示为“终止状态”。
注意
如果必须在 HBase 或 Kafka 群集中重新启动工作器节点或 zookeeper 节点,请谨慎对待,因为它可能会导致一段时间的稳定性问题,具体取决于群集大小调整和工作负荷压力。 重新启动工作器节点可能会导致不必要的区域/主题分区移动。 即使 ZooKeeper 节点重启也可能导致 ZooKeper 群集不稳定,因此可能会导致区域服务器/Kafka 代理关闭。
理想情况下,只要有可能,请在重新启动前停止 HBase/Kafka 服务,以最大程度减少对群集中写入的新数据的影响。
使用 PowerShell 重新启动 VM
使用“节点重新启动”操作需执行两个步骤:列出节点和重新启动节点。
列出节点。 可以在 Get-AzHDInsightHost 中获取群集节点列表。
Get-AzHDInsightHost -ClusterName myclustername
重新启动主机。 获取想要重新启动的节点名称后,请使用 Restart-AzHDInsightHost 重启节点。
Restart-AzHDInsightHost -ClusterName myclustername -Name wn0-myclus, wn1-myclus
注意
不支持使用 PowerShell 重新启动 HBase 和 Kafka 群集类型的节点。
使用 REST API 重新启动 VM
可以使用 API 文档中的“试一试”功能将请求发送到 HDInsight 。 使用“节点重新启动”操作需执行两个步骤:列出节点和重新启动节点。
列出节点。 可以在 REST API 或 Ambari 中获取群集节点列表。 有关详细信息,请参阅 HDInsight 列表主机 REST API 操作。
POST https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HDInsight/clusters/{clusterName}/listHosts?api-version=2018-06-01-preview
重新启动主机。 获取想要重新启动的节点名称后,请使用 REST API 重新启动节点来重启节点。 节点名称遵循的模式为 NodeType(wn/hn/zk/gw/id) + x + 群集名称的前六个字符。 有关详细信息,请参阅 HDInsight 重启主机 REST API 操作。
POST https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HDInsight/clusters/{clusterName}/restartHosts?api-version=2018-06-01-preview
要重新启动的节点的实际名称在请求正文的 JSON 数组中指定。
[
"wn0-abcdef",
"zk1-abcdef"
]
注意
不支持使用 REST API 为 HBase 和 Kafka 群集类型重新启动节点。