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

In dit artikel worden stappen beschreven voor probleemoplossing en mogelijke oplossingen 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 verschillen 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 de OPEN-regio's online worden teruggezet. In dit geval, als die map niet aanwezig was, werd deze niet gestart

Oplossing

  1. Maak deze dummymap 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 hbck2 gebruiken om naamruimte en metatabel toe te wijzen

Scenario: Fout bij het wijzigen van de naam van Atomic

Probleem

Onverwachte bestanden die zijn geïdentificeerd tijdens het opstartproces.

Oorzaak

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

HMaster voert een eenvoudige lijstopdracht 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 deze niet gestart.

Oplossing

Controleer de aanroepstack en probeer te bepalen welke map het probleem mogelijk veroorzaakt (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 naambewerking in het WASB-stuurprogramma. Vanwege fouten in deze implementatie kunnen deze bestanden overblijven nadat het proces is vastgelopen, enzovoort.) 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. Als u wordt uitgevoerd hbck , wordt mogelijk gemeld 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 worden geïnitialiseerd 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 opnieuw vanuit de Ambari-gebruikersinterface om HBase in 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

Er treedt een time-out op voor HMaster met een fatale uitzondering die vergelijkbaar is met: java.io.IOException: Timedout 300000ms waiting for namespace table to be assigned.

Oorzaak

Dit probleem kan optreden als u veel tabellen en regio's hebt 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 wanneer een grote hoeveelheid ongeflushte gegevens aanwezig is en een time-out van vijf minuten niet voldoende is.

Oplossing

  1. Ga vanuit de Gebruikersinterface van Apache Ambari naarHBase-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: De regioserver wordt regelmatig opnieuw opgestart

Probleem

Knooppunten worden regelmatig 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-onderbreking. De onderbreking zorgt ervoor dat regionserver niet reageert en geen hartslag naar HMaster kan verzenden binnen de time-out van de zookeeper-sessie 40s. HMaster gelooft dat regionserver het dood is, breekt de regionserver af en start opnieuw op.

U kunt dit verhelpen 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.cfgmaxSessionTimeout moet worden gewijzigd.

  1. Ga naar de Ambari-gebruikersinterface, ga naar HBase -> Configs -> Instellingen, wijzig in de sectie Time-outs de waarde van Zookeeper-sessietime-out.

  2. Open de Ambari-gebruikersinterface, ga naar Zookeeper -> Configuraties -> 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 vereiste services opnieuw op.

Oorzaak: overbelaste RegionServer

Volg 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 probleem verhelpen door uw HBase-cluster omhoog te schalen.


Scenario: fout bij het splitsen van logboeken

Probleem

HMasters kunnen niet worden weergegeven 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 het probleem niet ziet of als u het probleem niet kunt oplossen, gaat u naar een van de volgende kanalen voor meer ondersteuning: