Neustarten von VMs für HDInsight-Cluster

Azure HDInsight-Cluster enthalten Gruppen von virtuellen Computern (Virtual Machines, VMs) als Clusterknoten. Bei lange in Betrieb befindlichen Clustern ist es möglich, dass diese Knoten aus verschiedenen Gründen nicht mehr reagieren. In diesem Artikel wird beschrieben, wie Sie nicht reagierende VMs in einem HDInsight-Cluster neu starten.

Situationen, in denen ein Neustart erforderlich ist

Warnung

Wenn Sie VMs in einem Cluster neu starten, ist der Knoten nicht mehr verwendbar, und die Dienste auf dem Knoten müssen neu gestartet werden.

Bei einem Neustart eines Knotens wird der Cluster möglicherweise fehlerhaft, und Aufträge können verlangsamt werden oder fehlschlagen. Wenn Sie versuchen, den aktiven Hauptknoten neu zu starten, werden alle Aufträge, die derzeit ausgeführt werden, angehalten. Sie können erst dann wieder Aufträge an den Cluster übermitteln, wenn die Dienste wieder betriebsbereit sind. Aus diesen Gründen sollten Sie VMs nur bei Bedarf neu starten. Sie sollten VMs neu starten, wenn Folgendes zutrifft:

  • Sie können über SSH keine Verbindung mit dem Knoten herstellen, dieser reagiert jedoch auf Pings.
  • Der Workerknoten ist ausgefallen und hat keinen Heartbeat in der Ambari-Benutzeroberfläche.
  • Der temporäre Datenträger auf dem Knoten ist voll.
  • Die Prozesstabelle auf der VM enthält viele Einträge, in denen der Prozess abgeschlossen wurde, jedoch mit dem Status „Beendet“ aufgeführt ist.

Hinweis

Wenn Sie einen Workerknoten oder ZooKeeper-Knoten in einem HBase- oder Kafka-Cluster neu starten müssen, sollten Sie vorsichtig sein, da es je nach Clusterdimensionierung und Arbeitsauslastung für einige Zeit zu Stabilitätsproblemen kommen kann. Der Neustart eines Workerknotens kann zu unnötigen Verschiebungen der Region/Themenpartition führen.  Auch der Neustart eines ZooKeeper-Knotens kann zu Instabilität im ZooKeper-Cluster und damit zum Ausfall des Regionsservers/Kafka-Brokers führen. 
Wenn möglich, beenden Sie den HBase/Kafka-Dienst vor dem Neustart, um die Auswirkungen auf die neu in den Cluster geschriebenen Daten zu minimieren.

Verwenden von PowerShell zum Neustarten von VMs

Es sind zwei Schritte erforderlich, um den Neustartvorgang für Knoten auszuführen: Auflisten von Knoten und Neustarten von Knoten.

  1. Auflisten von Knoten. Sie können die Liste der Clusterknoten mit Get-AzHDInsightHost abrufen.

    Get-AzHDInsightHost -ClusterName myclustername
    
  2. Neustarten von Hosts. Nachdem Sie die Namen der Knoten abgerufen haben, die Sie neu starten möchten, starten Sie die Knoten über Restart-AzHDInsightHost neu.

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

Hinweis

Das Neustarten von Knoten für HBase- und Kafka-Clustertypen mit PowerShell wird nicht unterstützt.

Verwenden einer REST-API, um VMs neu zu starten

Sie können das Feature Ausprobieren in der API-Dokumentation verwenden, um Anforderungen an HDInsight zu senden. Es sind zwei Schritte erforderlich, um den Neustartvorgang für Knoten auszuführen: Auflisten von Knoten und Neustarten von Knoten.

  1. Auflisten von Knoten. Sie können die Liste der Clusterknoten über die REST-API oder in Ambari abrufen. Weitere Informationen finden Sie unter Virtuelle Computer: Auflisten von Hosts.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HDInsight/clusters/{clusterName}/listHosts?api-version=2018-06-01-preview
    
  2. Neustarten von Hosts. Nachdem Sie die Namen der Knoten abgerufen haben, die Sie neu starten möchten, starten Sie die Knoten neu, indem Sie dazu die REST-API verwenden. Für den Namen eines Knotens gilt folgendes Muster: Knotentyp(wn/hn/zk/gw/ib) + x + erste sechs Zeichen des Clusternamens. Weitere Informationen finden Sie unter Virtuelle Computer: Neustarten von Hosts.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HDInsight/clusters/{clusterName}/restartHosts?api-version=2018-06-01-preview
    

Die tatsächlichen Namen der Knoten, die Sie neu starten möchten, sind in einem JSON-Array im Anforderungstext angegeben.

[
  "wn0-abcdef",
  "zk1-abcdef"
]

Hinweis

Das Neustarten von Knoten für HBase- und Kafka-Clustertypen mit der REST-API wird nicht unterstützt.

Nächste Schritte