Nie można uruchomić usługi Apache HBase Master (HMaster) w usłudze Azure HDInsight
W tym artykule opisano kroki rozwiązywania problemów i możliwe rozwiązania problemów podczas interakcji z klastrami usługi Azure HDInsight.
Scenariusz: Master startup cannot progress, in holding-pattern until region comes online
Problem
Nie można uruchomić usługi HMaster z powodu następującego ostrzeżenia:
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.
Na przykład wartości parametrów mogą się różnić w rzeczywistym komunikacie:
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.
Przyczyna
Usługa HMaster sprawdza katalog WAL na serwerach regionów przed przywróceniem regionów OPEN w trybie online. W takim przypadku, jeśli ten katalog nie był obecny, nie rozpoczynał pracy
Rozwiązanie
Utwórz ten fikcyjny katalog przy użyciu polecenia :
sudo -u hbase hdfs dfs -mkdir /hbase-wals/WALs/<wn fqdn>,16000,1622012792000
Uruchom ponownie usługę HMaster z poziomu interfejsu użytkownika systemu Ambari.
Jeśli używasz biblioteki hbase-2.x, zobacz więcej informacji na temat przypisywania przestrzeni nazw i meta tabeli przy użyciu karty hbck2
Scenariusz: Niepowodzenie niepodzielnej zmiany nazwy
Problem
Nieoczekiwane pliki zidentyfikowane podczas procesu uruchamiania.
Przyczyna
Podczas procesu uruchamiania HMaster wykonuje wiele kroków inicjowania, w tym przenoszenie danych od podstaw (.tmp) do folderu danych. HMaster analizuje również folder dzienników zapisu (WAL), aby sprawdzić, czy istnieją serwery regionów, które nie odpowiadają.
HMaster wykonuje podstawowe polecenie listy w folderach WAL. Jeśli w dowolnym momencie usługa HMaster widzi nieoczekiwany plik w dowolnym z tych folderów, zgłasza wyjątek i nie uruchamia się.
Rozwiązanie
Sprawdź stos wywołań i spróbuj ustalić, który folder może powodować problem (na przykład może to być folder WAL lub folder .tmp). Następnie w Eksplorator usługi Azure Storage lub przy użyciu poleceń systemu plików HDFS spróbuj zlokalizować plik problemu. Zazwyczaj ten plik jest nazywany .*-renamePending.json
(Plik *-renamePending.json
jest plikiem dziennika używanym do implementowania niepodzielnej operacji zmiany nazwy w sterowniku WASB. Ze względu na błędy w tej implementacji te pliki można pozostawić po awarii procesu itd.) Wymuś usunięcie tego pliku w eksploratorze chmury lub przy użyciu poleceń systemu plików HDFS.
Czasami w tej lokalizacji może również znajdować się plik tymczasowy o nazwie podobny $$$.$$$
do tego. Aby wyświetlić ten plik, musisz użyć polecenia HDFSls
. Nie można wyświetlić pliku w Eksplorator usługi Azure Storage. Aby usunąć ten plik, użyj polecenia hdfs dfs -rm /\<path>\/\$\$\$.\$\$\$
HDFS .
Po uruchomieniu tych poleceń usługa HMaster powinna zostać uruchomiona natychmiast.
Scenariusz: brak adresu serwera na liście
Problem
Może zostać wyświetlony komunikat wskazujący, że hbase: meta
tabela nie jest w trybie online. Uruchomienie hbck
polecenia może zgłosić, że hbase: meta table replicaId 0 is not found on any region.
w dziennikach HMaster może zostać wyświetlony komunikat: No server address listed in hbase: meta for region hbase: backup <region name>
.
Przyczyna
HMaster nie może zainicjować po ponownym uruchomieniu bazy danych HBase.
Rozwiązanie
W powłoce HBase wprowadź następujące polecenia (zmień rzeczywiste wartości zgodnie z obowiązującymi):
scan 'hbase:meta' delete 'hbase:meta','hbase:backup <region name>','<column name>'
hbase: namespace
Usuń wpis. Ten wpis może być tym samym błędem zgłaszanym podczashbase: namespace
skanowania tabeli.Uruchom ponownie aktywny HMaster z interfejsu użytkownika systemu Ambari, aby wyświetlić bazę danych HBase w stanie uruchomienia.
W powłoce HBase, aby wyświetlić wszystkie tabele w trybie offline, uruchom następujące polecenie:
hbase hbck -ignorePreCheckPermission -fixAssignments
Scenariusz: java.io.IOException: Timedout
Problem
Funkcja HMaster zwraca limit czasu z krytycznym wyjątkiem podobnym do: java.io.IOException: Timedout 300000ms waiting for namespace table to be assigned
.
Przyczyna
Ten problem może wystąpić, jeśli masz wiele tabel i regionów, które nie zostały opróżnione po ponownym uruchomieniu usług HMaster. Przekroczenie limitu czasu jest znaną wadą HMaster. Ogólne zadania uruchamiania klastra mogą trwać długo. HMaster zamyka się, jeśli tabela przestrzeni nazw nie jest jeszcze przypisana. Długie zadania uruchamiania mają miejsce, gdy istnieje duża ilość niepotrzebnych danych, a limit czasu wynoszący pięć minut nie jest wystarczający.
Rozwiązanie
W interfejsie użytkownika systemu Apache Ambari przejdź do pozycji Konfiguracje bazy danych HBase>. W pliku niestandardowym
hbase-site.xml
dodaj następujące ustawienie:Key: hbase.master.namespace.init.timeout Value: 2400000
Uruchom ponownie wymagane usługi (HMaster i ewentualnie inne usługi HBase).
Scenariusz: Częste ponowne uruchamianie serwera regionu
Problem
Węzły są okresowo ponownie uruchamiane. W dziennikach serwera regionów mogą być widoczne wpisy podobne do:
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
Przyczyna: limit czasu sesji zookeeper
Długa regionserver
pauza GC JVM. Wstrzymanie powoduje regionserver
brak odpowiedzi i nie można wysłać pulsu do HMaster w ramach limitu czasu sesji zookeeper 40s. HMaster uważa, że regionserver
nie żyje, przerywa regionserver
i ponownie uruchamia.
Aby rozwiązać ten problem, zmień limit czasu sesji zookeeper, nie tylko hbase-site
ustawieniezookeeper.session.timeout
, ale także ustawienie maxSessionTimeout
Zookeeper zoo.cfg
należy zmienić.
Uzyskaj dostęp do interfejsu użytkownika systemu Ambari, przejdź do pozycji HBase —> konfiguracje —> ustawienia w sekcji Limity czasu zmień wartość limitu czasu sesji usługi Zookeeper.
Uzyskaj dostęp do interfejsu użytkownika systemu Ambari, przejdź do pozycji Zookeeper — Configs —>> Custom
zoo.cfg
, add/change następujące ustawienie. Upewnij się, że wartość jest taka sama jak HBasezookeeper.session.timeout
.Key: maxSessionTimeout Value: 120000
Uruchom ponownie wymagane usługi.
Przyczyna: przeciążony regionServer
Postępuj zgodnie z instrukcjami Liczba regionów na rs — górna granica , aby obliczyć górną granicę.
Na przykład: 8000 (Region server Heap -- Xmx in MB) * 0.4 (hbase.regionserver.global.memstore.size) /64 (hbase.regionserver.hlog.blocksize/2) = 50
.
Aby rozwiązać ten problem, przeskaluj klaster HBase w górę.
Scenariusz: niepowodzenie dzielenia dziennika
Problem
Usługa HMasters nie może pojawić się w klastrze HBase.
Przyczyna
Nieprawidłowo skonfigurowane ustawienia systemu plików HDFS i HBase dla pomocniczego konta magazynu.
Rozwiązanie
set hbase.rootdir: wasb://@.blob.core.windows.net/hbase
i uruchom ponownie usługi w systemie Ambari.
Następne kroki
Jeśli problem nie został wyświetlony lub nie możesz go rozwiązać, odwiedź jeden z następujących kanałów, aby uzyskać więcej pomocy technicznej:
Uzyskaj odpowiedzi od ekspertów platformy Azure za pośrednictwem pomocy technicznej społeczności platformy Azure.
Nawiąż połączenie z @AzureSupport — oficjalnym kontem platformy Microsoft Azure, aby ulepszyć środowisko klienta. Łączenie społeczności platformy Azure z odpowiednimi zasobami: odpowiedziami, pomocą techniczną i ekspertami.
Jeśli potrzebujesz dodatkowej pomocy, możesz przesłać wniosek o pomoc techniczną w witrynie Azure Portal. Wybierz pozycję Pomoc techniczna na pasku menu lub otwórz centrum Pomoc i obsługa techniczna . Aby uzyskać bardziej szczegółowe informacje, zobacz How to create an pomoc techniczna platformy Azure request (Jak utworzyć żądanie pomoc techniczna platformy Azure). Dostęp do pomocy technicznej dotyczącej zarządzania subskrypcjami i rozliczeniami jest oferowany w ramach subskrypcji platformy Microsoft Azure, a pomoc techniczna jest świadczona w ramach jednego z planów pomocy technicznej platformy Azure.