Delen via


Apache HBase Master (HMaster) kan niet worden gestart in Azure HDInsight

In dit artikel worden de stappen voor probleemoplossing en mogelijke oplossingen beschreven voor problemen bij interactie met Azure HDInsight-clusters.

Scenario: Master startup cannot progress, in holding-pattern until region comes online

Probleem

HMaster kan niet worden gestart vanwege de volgende waarschuwing:

hbase:namespace,,<timestamp_region_create>.<encoded_region_name>.is NOT online; state={<encoded_region_name> state=OPEN, ts=<some_timestamp>, server=<server_name>}; ServerCrashProcedures=true. Master startup cannot progress, in holding-pattern until region onlined. 

De parameterwaarden kunnen bijvoorbeeld variëren in het werkelijke bericht:

hbase:namespace,,1546588612000.0000010bc582e331e3080d5913a97000. is NOT online; state={0000010bc582e331e3080d5913a97000 state=OPEN, ts=1633935993000, server=<wn fqdn>,16000,1622012792000}; ServerCrashProcedures=false. Master startup cannot progress, in holding-pattern until region onlined.

Oorzaak

HMaster controleert de WAL-map op de regioservers voordat u de OPEN-regio's online brengt. In dit geval, als die map niet aanwezig was, is deze niet aan de slag gegaan

Oplossing

  1. Maak deze dummy-map met behulp van de opdracht: sudo -u hbase hdfs dfs -mkdir /hbase-wals/WALs/<wn fqdn>,16000,1622012792000

  2. Start de HMaster-service opnieuw vanuit de Ambari-gebruikersinterface.

Als u hbase-2.x gebruikt, raadpleegt u meer informatie over het gebruik van hbck2 om naamruimte en metatabel toe te wijzen

Scenario: Fout bij atomisch wijzigen van naam

Probleem

Onverwachte bestanden geïdentificeerd tijdens het opstartproces.

Oorzaak

Tijdens het opstartproces voert HMaster veel initialisatiestappen uit, waaronder het verplaatsen van gegevens vanaf het begin (.tmp) naar de gegevensmap. HMaster kijkt ook naar de map write-ahead logs (WAL) om te zien of er niet-reagerende regioservers zijn.

HMaster voert een basislijstopdracht uit in de WAL-mappen. Als HMaster op enig moment een onverwacht bestand in een van deze mappen ziet, wordt er een uitzondering gegenereerd en wordt het niet gestart.

Oplossing

Controleer de aanroepstack en probeer te bepalen welke map het probleem kan veroorzaken (dit kan bijvoorbeeld de WAL-map of de .tmp map zijn). Probeer vervolgens in Azure Storage Explorer of met behulp van HDFS-opdrachten het probleembestand te vinden. Dit bestand wordt meestal genoemd *-renamePending.json. (Het *-renamePending.json bestand is een logboekbestand dat wordt gebruikt voor het implementeren van de atomische naamswijzigingsbewerking in het WASB-stuurprogramma. Vanwege fouten in deze implementatie kunnen deze bestanden worden overgelaten na het vastlopen van het proces, enzovoort.) U kunt dit bestand geforceerd verwijderen in Cloud Explorer of met behulp van HDFS-opdrachten.

Soms is er ook een tijdelijk bestand met de naam op $$$.$$$ deze locatie. U moet de HDFS-opdracht ls gebruiken om dit bestand te zien. U kunt het bestand niet zien in Azure Storage Explorer. Als u dit bestand wilt verwijderen, gebruikt u de HDFS-opdracht hdfs dfs -rm /\<path>\/\$\$\$.\$\$\$.

Nadat u deze opdrachten hebt uitgevoerd, moet HMaster onmiddellijk worden gestart.


Scenario: er wordt geen serveradres vermeld

Probleem

Mogelijk ziet u een bericht dat aangeeft dat de hbase: meta tabel niet online is. Het uitvoeren hbck kan rapporteren dat hbase: meta table replicaId 0 is not found on any region. in de HMaster-logboeken het volgende bericht wordt weergegeven: No server address listed in hbase: meta for region hbase: backup <region name>

Oorzaak

HMaster kan niet initialiseren na het opnieuw opstarten van HBase.

Oplossing

  1. Voer in de HBase-shell de volgende opdrachten in (wijzig de werkelijke waarden indien van toepassing):

    scan 'hbase:meta'
    delete 'hbase:meta','hbase:backup <region name>','<column name>'
    
  2. Verwijder de hbase: namespace vermelding. Deze vermelding kan dezelfde fout zijn die wordt gerapporteerd wanneer de hbase: namespace tabel wordt gescand.

  3. Start de actieve HMaster vanuit de Ambari-gebruikersinterface opnieuw op om HBase in de actieve status weer te geven.

  4. Voer in de HBase-shell de volgende opdracht uit om alle offlinetabellen weer te geven:

    hbase hbck -ignorePreCheckPermission -fixAssignments
    

Scenario: java.io.IOException: Timedout

Probleem

HMaster time-out met fatale uitzondering vergelijkbaar met: java.io.IOException: Timedout 300000ms waiting for namespace table to be assigned.

Oorzaak

Dit probleem kan optreden als er veel tabellen en regio's zijn die niet zijn leeggemaakt wanneer u uw HMaster-services opnieuw start. De time-out is een bekend defect met HMaster. Algemene opstarttaken voor clusters kunnen lang duren. HMaster wordt afgesloten als de naamruimtetabel nog niet is toegewezen. De langdurige opstarttaken vinden plaats waar een grote hoeveelheid niet-geflusheerde gegevens bestaat en een time-out van vijf minuten niet voldoende is.

Oplossing

  1. Ga vanuit de Apache Ambari-gebruikersinterface naar HBase-configuraties>. Voeg in het aangepaste hbase-site.xml bestand de volgende instelling toe:

    Key: hbase.master.namespace.init.timeout Value: 2400000  
    
  2. Start de vereiste services (HMaster en mogelijk andere HBase-services) opnieuw op.


Scenario: Frequente regioserver wordt opnieuw opgestart

Probleem

Knooppunten worden periodiek opnieuw opgestart. In de logboeken van de regioserver ziet u mogelijk vermeldingen die vergelijkbaar zijn met:

2017-05-09 17:45:07,683 WARN  [JvmPauseMonitor] util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 31000ms
2017-05-09 17:45:07,683 WARN  [JvmPauseMonitor] util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 31000ms
2017-05-09 17:45:07,683 WARN  [JvmPauseMonitor] util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 31000ms

Oorzaak: time-out van zookeeper-sessie

Lange regionserver JVM GC pauzeren. De onderbreking zorgt ervoor dat deze regionserver niet meer reageert en geen hartslag kan verzenden naar HMaster binnen de time-outs van de zookeepersessie 40s. HMaster gelooft dat regionserver het dood is, ontvoert de regionserver en herstart.

U kunt dit beperken door de time-out van de Zookeeper-sessie te wijzigen, niet alleen hbase-site de instelling zookeeper.session.timeout , maar ook de Zookeeper-instelling zoo.cfg maxSessionTimeout moet worden gewijzigd.

  1. Access Ambari UI, ga naar HBase -> Configs -> Settings, in de sectie Time-outs, wijzig de waarde van Zookeeper Session Timeout.

  2. Open de Ambari-gebruikersinterface, ga naar Zookeeper -> Configs -> Aangepastzoo.cfg, voeg de volgende instelling toe of wijzig deze. Zorg ervoor dat de waarde hetzelfde is als HBase zookeeper.session.timeout.

    Key: maxSessionTimeout Value: 120000  
    
  3. Start de vereiste services opnieuw op.

Oorzaak: overbelaste RegionServer

Volg het aantal regio's per RS- bovengrens om de bovengrens te berekenen. Bijvoorbeeld: 8000 (Region server Heap -- Xmx in MB) * 0.4 (hbase.regionserver.global.memstore.size) /64 (hbase.regionserver.hlog.blocksize/2) = 50

U kunt dit verhelpen door uw HBase-cluster omhoog te schalen.


Scenario: Fout bij het splitsen van logboeken

Probleem

HMasters zijn niet beschikbaar in een HBase-cluster.

Oorzaak

Onjuist geconfigureerde HDFS- en HBase-instellingen voor een secundair opslagaccount.

Oplossing

set hbase.rootdir: wasb://@.blob.core.windows.net/hbase en start de services opnieuw op Ambari.


Volgende stappen

Als u uw probleem niet hebt gezien of uw probleem niet kunt oplossen, gaat u naar een van de volgende kanalen voor meer ondersteuning:

  • Krijg antwoorden van Azure-experts via de ondersteuning van De Azure-community.

  • Maak verbinding met @AzureSupport : het officiële Microsoft Azure-account voor het verbeteren van de klantervaring. De Azure-community verbinden met de juiste resources: antwoorden, ondersteuning en experts.

  • Als u meer hulp nodig hebt, kunt u een ondersteuningsaanvraag indienen via Azure Portal. Selecteer Ondersteuning in de menubalk of open de Help + ondersteuningshub . Raadpleeg hoe u een ondersteuning voor Azure aanvraag maakt voor meer informatie. Toegang tot abonnementsbeheer en factuurbeheer is in uw Microsoft Azure-abonnement inbegrepen, en technische ondersteuning wordt verstrekt via een van de Azure-ondersteuningsplannen.