Freigeben über


Szenario: Voll ausgelastete CPU auf Regionsserver im Apache HBase-Cluster in Azure HDInsight

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 Apache HBase-Regionsserverprozess beginnt mit dem Belegen bei einer CPU-Auslastung von fast 200%. Daraufhin werden Warnungen im HBase Master-Prozess und -Cluster ausgelöst werden, dass sie nicht mit voller Kapazität funktionieren.

Ursache

Wenn Sie HBase-Cluster v3.4 ausführen, ist vielleicht ein potenzieller Fehler aufgetreten, der durch ein Upgrade des JDK auf Version 1.7.0_151 verursacht wurde. Das erkennbare Symptom ist, dass der Regionsserverprozess beginnt, fast 200 % der CPU zu belegen. Um dies zu überprüfen, führen Sie den Befehl top aus. Wenn ein Prozess fast 200 % der CPU belegt, rufen Sie dessen pid ab, und vergewissern Sie sich, dass es sich um einen Regionsserverprozess handelt, indem Sie ps -aux | grep ausführen.

Lösung

  1. Installieren Sie JDK 1.8 auf ALLEN Knoten des Clusters wie angegeben:

    • Führen Sie die Skriptaktion https://raw.githubusercontent.com/Azure/hbase-utils/master/scripts/upgradetojdk18allnodes.sh aus. Wählen Sie die Option aus, die auf allen Knoten ausgeführt werden soll.

    • Alternativ können Sie sich bei jedem einzelnen Knoten anmelden und den Befehl sudo add-apt-repository ppa:openjdk-r/ppa -y && sudo apt-get -y update && sudo apt-get install -y openjdk-8-jdk ausführen.

  2. Wechseln Sie zur Ambari-Benutzeroberfläche – https://<clusterdnsname>.azurehdinsight.net.

  3. Navigieren Sie zu HBase > Configs > Advanced > Advanced hbase-env configs, und ändern Sie die Variable JAVA_HOME in export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64. Speichern Sie die Konfigurationsänderung.

  4. [Optional, aber empfohlen] Leeren Sie alle Tabellen im Cluster.

  5. Starten Sie alle HBase-Dienste, die neu gestartet werden müssen, über die Ambari-Benutzeroberfläche neu.

  6. Je nach den Daten im Cluster kann es einige Minuten bis zu einer Stunde dauern, bis der Cluster einen stabilen Zustand erreicht. Um zu bestätigen, dass der Cluster einen stabilen Zustand erreicht hat, können Sie die HMaster-Benutzeroberfläche in Ambari überprüfen (ob alle Regionsserver aktiv sind), indem Sie die Seite aktualisieren. Alternativ können Sie die HBase-Shell über den Hauptknoten ausführen und dann den Statusbefehl ausführen.

Um sicherzustellen, dass Ihr Upgrade erfolgreich war, überprüfen Sie, ob die relevanten HBase-Prozesse mit der entsprechenden Java-Version gestartet werden, z.B. beim Regionsserver:

ps -aux | grep regionserver, and verify the version like '''/usr/lib/jvm/java-8-openjdk-amd64/bin/java

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.