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
Maak deze dummy-map 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 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
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 vanuit de Ambari-gebruikersinterface opnieuw op om HBase in de 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
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
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
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.
Access Ambari UI, ga naar HBase -> Configs -> Settings, in de sectie Time-outs, wijzig de waarde van Zookeeper Session Timeout.
Open de Ambari-gebruikersinterface, ga naar Zookeeper -> Configs -> 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 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.