V Azure HDInsight se nedaří spustit hlavní server Apache HBase (HMaster)
Tento článek popisuje kroky řešení potíží a možná řešení problémů při interakci s clustery Azure HDInsight.
Scénář: Master startup cannot progress, in holding-pattern until region comes online
Problém
HMaster se nespustí kvůli následujícímu upozornění:
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.
Například hodnoty parametrů se mohou ve skutečné zprávě lišit:
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.
Příčina
HMaster zkontroluje adresář WAL na serverech oblastí a teprve potom vrátí do online režimu otevřené oblasti. V tomto případě, pokud tento adresář nebyl k dispozici, nebyl zahájen.
Rozlišení
Pomocí příkazu vytvořte tento fiktivní adresář:
sudo -u hbase hdfs dfs -mkdir /hbase-wals/WALs/<wn fqdn>,16000,1622012792000
Restartujte službu HMaster z uživatelského rozhraní Ambari.
Pokud používáte hbase-2.x, přečtěte si další informace o tom, jak pomocí hbck2 přiřadit obor názvů a meta table.
Scénář: Selhání atomového přejmenování
Problém
Neočekávané soubory identifikované během procesu spuštění
Příčina
Během procesu spuštění provádí HMaster mnoho inicializačních kroků, včetně přesunutí dat od nuly (.tmp) do datové složky. HMaster se také podívá do složky WAL (Write-ahead Logs) a zjistí, jestli neexistují nějaké nereagující servery oblastí.
HMaster provede základní příkaz seznamu u složek WAL. Pokud se V některé z těchto složek kdykoliv zobrazí neočekávaný soubor, vyvolá výjimku a nespustí se.
Rozlišení
Zkontrolujte zásobník volání a zkuste zjistit, která složka může být příčinou problému (může se jednat například o složku WAL nebo složku .tmp). Pak v Průzkumník služby Azure Storage nebo pomocí příkazů HDFS zkuste najít problém soubor. Obvykle se tento soubor nazývá *-renamePending.json
. (Soubor *-renamePending.json
je soubor deníku, který se používá k implementaci atomické operace přejmenování v ovladači WASB. Kvůli chybám v této implementaci mohou být tyto soubory ponechány po chybovém ukončení procesu atd.) Vynutit odstranění tohoto souboru buď v Průzkumníku cloudu, nebo pomocí příkazů HDFS.
Někdy může existovat také dočasný soubor s názvem podobný $$$.$$$
tomuto umístění. K zobrazení tohoto souboru musíte použít příkaz HDFSls
. V Průzkumník služby Azure Storage tento soubor nevidíte. Chcete-li odstranit tento soubor, použijte příkaz hdfs dfs -rm /\<path>\/\$\$\$.\$\$\$
HDFS .
Jakmile tyto příkazy spustíte, měl by se HMaster spustit okamžitě.
Scénář: Není uvedená žádná adresa serveru
Problém
Může se zobrazit zpráva, která značí, že hbase: meta
tabulka není online. Spuštění hbck
může hlásit, že hbase: meta table replicaId 0 is not found on any region.
v protokolech HMaster se může zobrazit zpráva: No server address listed in hbase: meta for region hbase: backup <region name>
.
Příčina
Po restartování HBase se HMaster nepodařilo inicializovat.
Rozlišení
V prostředí HBase zadejte následující příkazy (změňte skutečné hodnoty podle potřeby):
scan 'hbase:meta' delete 'hbase:meta','hbase:backup <region name>','<column name>'
hbase: namespace
Odstraňte položku. Tato položka může být stejná chyba, která se hlásí přihbase: namespace
kontrole tabulky.Restartujte aktivní HMaster z uživatelského rozhraní Ambari, aby se HBase spustil ve spuštěném stavu.
Spuštěním následujícího příkazu v prostředí HBase spusťte v prostředí HBase všechny offline tabulky:
hbase hbck -ignorePreCheckPermission -fixAssignments
Scénář: java.io.IOException: Timedout
Problém
HMaster vyprší s závažnou výjimkou podobnou: java.io.IOException: Timedout 300000ms waiting for namespace table to be assigned
.
Příčina
K tomuto problému může dojít, pokud máte mnoho tabulek a oblastí, které nebyly vyprázdněné při restartování služeb HMaster. Časový limit je známou vadou HMasteru. Obecné úlohy spouštění clusteru můžou trvat dlouhou dobu. HMaster se vypne, pokud ještě není přiřazená tabulka oboru názvů. Dlouhé spouštěcí úlohy probíhají v případě, že existuje velké množství nechycených dat a časový limit 5 minut nestačí.
Rozlišení
V uživatelském rozhraní Apache Ambari přejděte do konfigurace HBase>. Do vlastního
hbase-site.xml
souboru přidejte následující nastavení:Key: hbase.master.namespace.init.timeout Value: 2400000
Restartujte požadované služby (HMaster a případně i jiné služby HBase).
Scénář: Časté restartování serveru oblasti
Problém
Uzly se pravidelně restartují. V protokolech serveru oblastí se můžou zobrazit položky podobné:
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
Příčina: Vypršení časového limitu relace zookeeper
Long regionserver
JVM GC pause. Pozastavení způsobí regionserver
, že nereaguje a v relaci zookeeperu není možné odeslat srdeční tep do HMaster časového limitu 40s. HMaster věří, že regionserver
je mrtvý, přeruší regionserver
a restartuje.
Pokud chcete zmírnit, změňte časový limit relace Zookeeper, a to nejen hbase-site
nastavení zookeeper.session.timeout
maxSessionTimeout
Zookeeperzoo.cfg
, ale také je potřeba změnit.
Přejděte k uživatelskému rozhraní Ambari, přejděte na HBase –> Konfigurace –> Nastavení v části Vypršení časových limitů a změňte hodnotu časového limitu relace Zookeeper.
Přejděte k uživatelskému rozhraní Ambari, přejděte na Zookeeper –> Konfigurace –> Vlastní
zoo.cfg
, přidejte nebo změňte následující nastavení. Ujistěte se, že hodnota je stejná jako HBasezookeeper.session.timeout
.Key: maxSessionTimeout Value: 120000
Restartujte požadované služby.
Příčina: přetížený RegionServer
Sledujte počet oblastí na RS – horní mez k výpočtu horní hranice.
Příklad: 8000 (Region server Heap -- Xmx in MB) * 0.4 (hbase.regionserver.global.memstore.size) /64 (hbase.regionserver.hlog.blocksize/2) = 50
Pokud chcete tento problém zmírnit, vertikálně navyšte kapacitu clusteru HBase.
Scénář: Selhání dělení protokolů
Problém
Službě HMasters se nepodařilo nacházet v clusteru HBase.
Příčina
Chybně nakonfigurované nastavení HDFS a HBase pro sekundární účet úložiště
Rozlišení
set hbase.rootdir: wasb://@.blob.core.windows.net/hbase
a restartujte služby v Ambari.
Další kroky
Pokud jste problém neviděli nebo nemůžete problém vyřešit, navštivte jeden z následujících kanálů, kde najdete další podporu:
Získejte odpovědi od odborníků na Azure prostřednictvím podpory komunity Azure.
Spojte se s @AzureSupport – oficiálním účtem Microsoft Azure pro zlepšení uživatelského prostředí. Propojení komunity Azure se správnými prostředky: odpovědi, podpora a odborníci.
Pokud potřebujete další pomoc, můžete odeslat žádost o podporu z webu Azure Portal. V řádku nabídek vyberte možnost Podpora nebo otevřete centrum nápovědy a podpory . Podrobnější informace najdete v tématu Vytvoření žádosti o podpora Azure. Součástí předplatného Microsoft Azure je přístup ke správě předplatného a podpora fakturace. Technická podpora se poskytuje prostřednictvím některého z plánů podpory Azure.