Freigeben über


Szenario: BindException: Adresse wird in Azure HDInsight bereits verwendet

In diesem Artikel werden Schritte zur Problembehandlung und mögliche Lösungen für Probleme bei der Interaktion mit Azure HDInsight-Clustern beschrieben.

Problem

Der Neustartvorgang auf einem Apache HBase-Regionsserver kann nicht abgeschlossen werden. In region-server.log im Verzeichnis /var/log/hbase auf den Workerknoten, bei denen der Start des Regionsservers fehlschlägt, können Sie eine Fehlermeldung ähnlich der folgenden finden:

Caused by: java.net.BindException: Problem binding to /10.2.0.4:16020 : Address already in use
...

Caused by: java.net.BindException: Address already in use
...

Ursache

Neustarten von Apache HBase-Regionsservern bei hoher Workloadaktivität. Nachstehend wird erklärt, was passiert, wenn ein Benutzer in der Apache Ambari-Benutzeroberfläche den Neustartvorgang auf HBase-Regionsservern auslöst:

  1. Der Ambari-Agent sendet eine Beendigungsanforderung an den Regionsserver.

  2. Der Ambari-Agent wartet 30 Sekunden auf das ordnungsgemäße Herunterfahren des Regionsservers.

  3. Wenn Ihre Anwendung weiterhin eine Verbindung mit dem Regionsserver unterhält, wird der Server nicht sofort heruntergefahren. Das Zeitlimit von 30 Sekunden läuft ab, bevor der Server heruntergefahren wird.

  4. Nach 30 Sekunden sendet der Ambari-Agent einen Befehl zum Erzwingen des Beendens (kill -9) an den Regionsserver.

  5. Aufgrund dieses abrupten Herunterfahrens, wenngleich der Regionsserverprozess beendet wird, wird der mit dem Prozess verbundene Port möglicherweise nicht freigegeben, was schließlich zu AddressBindException führt.

Lösung

Reduzieren Sie die Last auf den HBase-Regionsservern, bevor Sie einen Neustart einleiten. Zudem empfiehlt es sich, zuvor alle Tabellen zu leeren. Eine Anleitung zum Leeren von Tabellen finden Sie unter HDInsight HBase: How to Improve HBase cluster restart time by Flushing tables? (HDInsight HBase: Verbessern der Neustartdauer von HBase-Clustern durch Leeren von Tabellen).

Alternativ können Sie versuchen, Regionsserver auf den Workerknoten mithilfe folgender Befehle manuell neu zu starten:

sudo su - hbase -c "/usr/hdp/current/hbase-regionserver/bin/hbase-daemon.sh stop regionserver"
sudo su - hbase -c "/usr/hdp/current/hbase-regionserver/bin/hbase-daemon.sh start regionserver"

Nächste Schritte

Wenn Ihr Problem nicht aufgeführt ist oder Sie es nicht lösen können, besuchen Sie einen der folgenden Kanäle, um weitere Unterstützung zu erhalten:

  • Nutzen Sie den Azure-Communitysupport, um Antworten von Azure-Experten zu erhalten.

  • Setzen Sie sich mit @AzureSupport in Verbindung, dem offiziellen Microsoft Azure-Konto zum Verbessern der Kundenfreundlichkeit. Verbinden der Azure-Community mit den richtigen Ressourcen: Antworten, Support und Experten.

  • Sollten Sie weitere Unterstützung benötigen, senden Sie eine Supportanfrage über das Azure-Portal. Wählen Sie dazu auf der Menüleiste die Option Support aus, oder öffnen Sie den Hub Hilfe und Support. Ausführlichere Informationen hierzu finden Sie unter Erstellen einer Azure-Supportanfrage. Zugang zu Abonnementverwaltung und Abrechnungssupport ist in Ihrem Microsoft Azure-Abonnement enthalten. Technischer Support wird über einen Azure-Supportplan bereitgestellt.