共用方式為


重新啟動 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

使用節點重新啟動作業需要兩個步驟:列出節點和重新啟動節點。

  1. 列出節點。 您可以在 Get-AzHDInsightHost 取得叢集節點清單。

    Get-AzHDInsightHost -ClusterName myclustername
    
  2. 重新啟動主機。 取得您想要重新啟動的節點名稱之後,請使用 Restart-AzHDInsightHost 重新啟動節點。

    Restart-AzHDInsightHost -ClusterName myclustername -Name wn0-myclus, wn1-myclus
    

注意

不支援利用 PowerShell 重新啟動 HBase 和 Kafka 叢集類型的節點。

使用 REST API 重新啟動 VM

您可以使用 API 文件中的 Try it 功能,將要求傳送至 HDInsight。 使用節點重新啟動作業需要兩個步驟:列出節點和重新啟動節點。

  1. 列出節點。 您可以從 REST API 或 Ambari 中取得叢集節點清單。 如需詳細資訊,請參閱 HDInsight 清單主機 REST API 作業

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HDInsight/clusters/{clusterName}/listHosts?api-version=2018-06-01-preview
    
  2. 重新啟動主機。 取得您想要重新啟動的節點名稱之後,請使用 REST API 重新啟動節點。 節點名稱會遵循 NodeType(wn/hn/zk/gw/ib) + x + 叢集名稱前六個字元的模式。 如需詳細資訊,請參閱HDInsight 重新啟動主機 REST API 作業

    POST https://management.azure.com/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 叢集類型的節點。

下一步