Sdílet prostřednictvím


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í

  1. Pomocí příkazu vytvořte tento fiktivní adresář: sudo -u hbase hdfs dfs -mkdir /hbase-wals/WALs/<wn fqdn>,16000,1622012792000

  2. 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í

  1. 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>'
    
  2. hbase: namespace Odstraňte položku. Tato položka může být stejná chyba, která se hlásí při hbase: namespace kontrole tabulky.

  3. Restartujte aktivní HMaster z uživatelského rozhraní Ambari, aby se HBase spustil ve spuštěném stavu.

  4. 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í

  1. 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  
    
  2. 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.

  1. 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.

  2. 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 HBase zookeeper.session.timeout.

    Key: maxSessionTimeout Value: 120000  
    
  3. 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.