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
Maak deze dummymap met behulp van de opdracht:
sudo -u hbase hdfs dfs -mkdir /hbase-wals/WALs/<wn fqdn>,16000,1622012792000
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
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>'
Verwijder de
hbase: namespace
vermelding. Deze vermelding kan dezelfde fout zijn die wordt gerapporteerd wanneer dehbase: namespace
tabel wordt gescand.Start de actieve HMaster opnieuw vanuit de Ambari-gebruikersinterface om HBase in actieve status weer te geven.
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
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
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.cfg
maxSessionTimeout
moet worden gewijzigd.
Ga naar de Ambari-gebruikersinterface, ga naar HBase -> Configs -> Instellingen, wijzig in de sectie Time-outs de waarde van Zookeeper-sessietime-out.
Open de Ambari-gebruikersinterface, ga naar Zookeeper -> Configuraties -> Aangepast
zoo.cfg
, voeg de volgende instelling toe of wijzig deze. Zorg ervoor dat de waarde hetzelfde is als HBasezookeeper.session.timeout
.Key: maxSessionTimeout Value: 120000
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:
Krijg antwoorden van Azure-experts via Ondersteuning voor 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 vanuit de Azure Portal. Selecteer Ondersteuning in de menubalk of open de Help en ondersteuningshub . Zie How to create an ondersteuning voor Azure request (Een ondersteuning voor Azure-aanvraag maken) voor meer gedetailleerde informatie. Toegang tot abonnementsbeheer en factureringsondersteuning is inbegrepen in uw Microsoft Azure-abonnement en technische ondersteuning wordt geboden via een van de Azure-ondersteuningsplannen.