Jak zainstalować HBase na Ubuntu: Przewodnik krok po kroku

⚡ Inteligentne podsumowanie

Instalacja HBase na Ubuntu działa w trzech trybach — samodzielnym, pseudorozproszonym i w pełni rozproszonym — obejmując informacje na temat pobierania pliku tarball z wydaniem, edycji plików hbase-env.sh i hbase-site.xml, uruchamiania demonów i naprawiania typowych błędów uruchamiania.

  • 🧩 Tryby instalacji: Tryb autonomiczny działa na jednej maszynie wirtualnej Java w lokalnym systemie plików, tryby rozproszone przechowują dane w Hadoop HDFS.
  • (Tj. Download: Pobierz archiwum binarne HBase ze strony Apache HBase i rozpakuj je w swoim katalogu domowym.
  • ⚙️ Konfiguracja: Ustaw JAVA_HOME i HBASE_HOME, a następnie zdefiniuj katalogi hbase.rootdir i ZooKeeper w pliku hbase-site.xml.
  • ▶ ️ Uruchomienie: Uruchom start-hbase.sh, potwierdź HMaster za pomocą jps, a następnie otwórz interaktywny monit za pomocą powłoki hbase.
  • 🌐 Pseudo-rozproszone: Wskaż hbase.rootdir na HDFS, włącz hbase.cluster.distributed i ustaw kworum ZooKeeper oraz port klienta.
  • 🩹 Rozwiązywanie problemów: Rozwiąż błędy związane z serwerem regionu, kworum ZooKeeper, katalogiem głównym i przekroczeniem limitu czasu sesji poprzez edycję plików hosts i hbase-site.xml.

Jak zainstalować Apache HBase na Ubuntu w trybie autonomicznym, pseudorozproszonym i w pełni rozproszonym

Apache HBase jest rozproszoną bazą danych, baza danych zorientowana kolumnowo który działa na rozproszonym systemie plików Hadoop (HDFS). Zanim zaczniesz, upewnij się, że obsługujesz Java zainstalowane jest środowisko wykonawcze i ustawiony jest JAVA_HOME; tryby pseudorozproszony i w pełni rozproszony również wymagają działającego Hadoop instalacja.

Tryby instalacji Apache HBase

Apache HBase można zainstalować w trzech trybach. Poniżej opisano funkcje tych trybów.

1) Instalacja w trybie autonomicznym (brak zależności od systemu Hadoop)

  • To jest domyślny tryb HBase.
  • Działa w oparciu o lokalny system plików.
  • Nie używa Hadoop HDFS.
  • Można uruchomić tylko demona HMaster.
  • Niezalecane do środowiska produkcyjnego.
  • Działa na pojedynczej maszynie wirtualnej Java (JVM).

2) Instalacja w trybie pseudorozproszonym (jednowęzłowy system Hadoop + instalacja HBase)

  • To działa Hadoop HDFS.
  • Wszystkie demony działają na pojedynczym węźle.
  • Zalecane dla środowiska produkcyjnego.

3) Instalacja w trybie w pełni rozproszonym (środowisko Hadoop wielowęzłowe + instalacja HBase)

  • To działa Hadoop HDFS.
  • Wszystkie demony działają na wszystkich węzłach obecnych w klastrze.
  • Zdecydowanie zalecane dla środowiska produkcyjnego.

Aby zainstalować Hadoop, zapoznaj się z tym Przewodnik instalacji Hadoop.

Poniższe zrzuty ekranu korzystają z HBase 1.1.2. Aktualne stabilne wersje to serie HBase 2.5.x i 2.6.x (Java 8 lub 11), ale kroki instalacji i pliki konfiguracyjne pozostają zasadniczo takie same.

Jak pobrać stabilną wersję pliku tar HBase

Krok 1) Przejdź do oficjalna strona pobierania Apache HBase Aby pobrać HBase. Otworzy się strona pobierania, jak pokazano poniżej.

Otwórz stronę pobierania Apache HBase w przeglądarce, aby pobrać archiwum tarball

Krok 2) Wybierz wersję stabilną, jak pokazano poniżej: HBase 1.1.2.

Wybór stabilnej wersji HBase 1.1.2 na stronie pobierania

Krok 3) Kliknij hbase-1.1.2-bin.tar.gz. Zostanie pobrany plik tar. Skopiuj plik tar do folderu instalacji.

Kliknij łącze binarne hbase-1.1.2-bin.tar.gz, aby pobrać plik tar

Jak zainstalować HBase w Ubuntu z trybem samodzielnym

Oto krok po kroku proces instalacji HBase w trybie autonomicznym Ubuntu:

Krok 1) Umieść poniższe polecenie. Umieść plik hbase-1.1.2-bin.tar.gz w katalogu /home/hduser.

Krok 2) Rozpakuj go, wykonując polecenie $tar -xvf hbase-1.1.2-bin.tar.gz. Spowoduje to rozpakowanie zawartości i utworzenie pliku hbase-1.1.2 w lokalizacji /home/hduser.

Krok 3) Otwórz plik hbase-env.sh, jak pokazano poniżej, i wpisz ścieżkę JAVA_HOME w odpowiedniej lokalizacji, jak pokazano poniżej.

Edycja pliku hbase-env.sh w celu ustawienia ścieżki JAVA_HOME dla trybu autonomicznego

Krok 4) Otwórz plik ~/.bashrc i wpisz ścieżkę HBASE_HOME, jak pokazano poniżej.

export HBASE_HOME=/home/hduser/hbase-1.1.1
export PATH= $PATH:$HBASE_HOME/bin

Poniżej pokazano zaktualizowany plik ~/.bashrc z wpisem HBASE_HOME.

Dodawanie ścieżki HBASE_HOME do pliku bashrc w trybie autonomicznym

Krok 5) Dodaj właściwości do pliku. Otwórz plik hbase-site.xml i umieść w nim następujące właściwości.

hduser@ubuntu$ gedit hbase-site.xml (kod poniżej)

<property>

<name>hbase.rootdir</name>

<value>file:///home/hduser/HBASE/hbase</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/home/hduser/HBASE/zookeeper</value>

</property>

Plik hbase-site.xml został otwarty w gedit jest pokazany poniżej.

hbase-site.xml otwarty w gedit z samodzielnymi właściwościami rootdir i ZooKeeper

Tutaj umieszczamy dwie właściwości:

  • Jeden dla katalogu głównego HBase i
  • Drugi dla katalogu danych odpowiadającego Opiekun zoo.

Wszystkie działania HMaster i ZooKeeper odnoszą się do tego pliku hbase-site.xml.

Krok 6) Podaj adresy IP. Otwórz plik hosts znajdujący się w katalogu /etc. i podaj adresy IP, jak pokazano poniżej.

Edycja pliku /etc/hosts w celu mapowania adresów IP maszyn

Krok 7) Teraz uruchom plik start-hbase.sh w lokalizacji hbase-1.1.1/bin, jak pokazano poniżej. Następnie możesz sprawdzić poleceniem jps, czy HMaster działa, czy nie.

Wynik polecenia jps pokazujący proces HMaster działający w trybie autonomicznym

Krok 8) Uruchom powłokę HBase. Powłokę HBase można uruchomić za pomocą powłoka hbase polecenie, a program przejdzie w interaktywny tryb powłoki, jak pokazano na zrzucie ekranu poniżej. Po przejściu w tryb powłoki możemy wykonywać wszystkie typy poleceń.

Monit powłoki interaktywnej HBase uruchomiony za pomocą polecenia powłoki hBase

Tryb autonomiczny nie wymaga uruchamiania demonów Hadoop. HBase może działać niezależnie.

Pseudorozproszony tryb instalacji HBase

To kolejna metoda instalacji Apache HBase, znana jako instalacja pseudorozproszona. Poniżej przedstawiono kroki instalacji HBase w trybie pseudorozproszonym.

Krok 1) Umieść plik hbase-1.1.2-bin.tar.gz w katalogu /home/hduser.

Krok 2) Rozpakuj go, wykonując polecenie $tar -xvf hbase-1.1.2-bin.tar.gz. Spowoduje to rozpakowanie zawartości i utworzenie pliku hbase-1.1.2 w lokalizacji /home/hduser.

Krok 3) Otwórz plik hbase-env.sh, jak pokazano poniżej, podaj w lokalizacji ścieżkę JAVA_HOME i ścieżkę serwerów regionu, a następnie wyeksportuj polecenie, jak pokazano poniżej.

Edycja pliku hbase-env.sh z JAVA_HOME i ścieżką serwerów regionów dla trybu pseudorozproszonego

Krok 4) W tym kroku otworzymy plik ~/.bashrc i podajemy ścieżkę HBASE_HOME, jak pokazano na zrzucie ekranu poniżej.

Ustawianie ścieżki HBASE_HOME w pliku bashrc dla trybu pseudorozproszonego

Krok 5) Otwórz plik hbase-site.xml i wpisz podane niżej właściwości w pliku (kod poniżej).

<property>

<name>hbase.rootdir</name>

<value>hdfs://localhost:9000/hbase</value>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>localhost</value>

</property>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>hbase.zookeeper.property.clientPort</name>

<value>2181</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/home/hduser/hbase/zookeeper</value>

</property>

Poniżej pokazano plik hbase-site.xml z pseudorozproszonymi właściwościami.

hbase-site.xml z pseudorozproszonymi właściwościami HDFS i ZooKeeper

Pozostała konfiguracja ZooKeeper pokazana jest poniżej.

Kontynuacja konfiguracji ZooKeepera w pliku hbase-site.xml dla trybu pseudorozproszonego

Każda właściwość w pliku odgrywa określoną rolę:

  • Konfigurowanie katalogu głównego HBase we właściwości hbase.rootdir.
  • W przypadku konfiguracji rozproszonej zmienną hbase.cluster.distributed należy ustawić na true.
  • Tutaj należy skonfigurować właściwość kworum ZooKeeper.
  • Replikacja jest konfigurowana we właściwości dfs.replication. Domyślnie replikacja ma wartość 1. W trybie w pełni rozproszonym obecnych jest wiele węzłów danych, dlatego można zwiększyć replikację, ustawiając wartość większą niż 1 we właściwości dfs.replication.
  • Port klienta powinien być podany we właściwości hbase.zookeeper.property.clientPort.
  • Katalog danych ZooKeepera można określić we właściwości hbase.zookeeper.property.dataDir.

Krok 6) Najpierw uruchom demony Hadoop, a następnie demony HBase, jak pokazano poniżej. Najpierw musisz uruchomić demony Hadoop za pomocą polecenia ./start-all.sh, jak pokazano poniżej.

Uruchomienie polecenia start-all.sh w celu uruchomienia demonów Hadoop

Następnie uruchom demony HBase za pomocą hbase-start.sh, jak pokazano poniżej.

Uruchamianie demonów HBase za pomocą skryptu start-hbase.sh w trybie pseudorozproszonym

Teraz sprawdź uruchomione procesy za pomocą polecenia jps, jak pokazano poniżej.

Wynik polecenia jps wyświetlający listę uruchomionych demonów Hadoop i HBase

Instalacja w trybie w pełni rozproszonym HBase

Tryb całkowicie rozproszony rozszerza pseudorozproszoną konfigurację na cały rzeczywisty klaster.

  • Ta konfiguracja działa w trybie klastra Hadoop, w którym wiele węzłów pojawia się w klastrze i działa.
  • Instalacja przebiega tak samo, jak w trybie pseudorozproszonym; jedyną różnicą jest to, że będzie przeprowadzana na wielu węzłach.
  • Pliki konfiguracyjne wymienione w hbase-site.xml i hbase-env.sh są takie same jak te wymienione w trybie pseudo.

W trybie w pełni rozproszonym upewnij się, że wersja Hadoop w Twoim klastrze jest zgodna z bibliotekami Hadoop dołączonymi do HBase, aby demony komunikowały się prawidłowo.

Rozwiązywanie problemów z instalacją HBase

1) Opis problemu: Serwer główny inicjuje się, ale serwery regionalne nie inicjują się

Komunikacja między serwerem głównym a serwerami regionalnymi odbywa się za pośrednictwem ich adresów IP. Serwer główny nasłuchuje serwerów regionalnych, które są uruchomione lub mają adres IP 127.0.0.1. Adres IP 127.0.0.1 jest adresem hosta lokalnego i odpowiada adresowi hosta lokalnego serwera głównego.

Przyczyna:

W przypadku podwójnej komunikacji między serwerami regionalnymi i serwerem głównym, serwer regionalny stale informuje serwer główny, że jego adres IP to 127.0.0.1.

Rozwiązanie:

  • Usuń węzeł nazwy serwera głównego z wpisu hosta lokalnego znajdującego się w pliku hosts.
  • Lokalizacja pliku hosta: /etc/hosts.

Co zmienić:

Otwórz /etc/hosts i przejdź do tej lokalizacji.

127.0.0.1 fully.qualified.regionservernameregionservername localhost.localdomain localhost
: : 1              localhost3.localdomain3 localdomain3

Zmodyfikuj powyższą konfigurację w następujący sposób (usuń nazwę serwera regionu, jak zaznaczono powyżej).

127.0.0.1    localhost.localdomainlocalhost
: : 1 localhost3.localdomain3 localdomain3

2) Opis problemu: Nie można znaleźć mojego adresu: XYZ na liście serwerów kworum ZooKeeper

Przyczyna:

  • Serwer ZooKeeper nie mógł zostać uruchomiony i zgłaszał błąd, np. .xyz w nazwie serwera.
  • HBase próbuje uruchomić serwer ZooKeeper na komputerze, ale jednocześnie komputer nie może odnaleźć konfiguracji kworum określonej w konfiguracji hbase.zookeeper.quorum.

Rozwiązanie:

  • Zastąp nazwę hosta nazwą podaną w komunikacie o błędzie.
  • Jeżeli posiadasz serwer DNS, możesz ustawić poniższe konfiguracje w pliku hbase-site.xml: hbase.zookeeper.dns.interface i hbase.zookeeper.dns.nameserver.

3) Opis problemu: Utworzono katalog główny dla HBase za pomocą Hadoop DFS

  • Master informuje, że musisz uruchomić skrypt migracji HBase.
  • Po uruchomieniu skrypt migracji HBase zwraca odpowiedź, że w katalogu głównym nie ma żadnych plików.

Przyczyna:

  • Utworzono nowy katalog dla HBase przy użyciu rozproszonego systemu plików Hadoop.
  • W tym przypadku HBase spodziewa się dwóch możliwości:

1) Katalog główny nie istnieje.

2) Wcześniej została zainicjowana poprzednia instancja HBase.

Rozwiązanie:

  • Sprawdź, czy katalog główny HBase obecnie nie istnieje lub czy został zainicjowany podczas poprzedniego uruchomienia instancji HBase.
  • Aby rozwiązać ten problem, wykonaj następujące kroki.

Krok 1) Użyj Hadoop dfs, aby usunąć katalog główny HBase.

Krok 2) HBase samodzielnie tworzy i inicjuje katalog.

4) Opis problemu: Zdarzenia wygasające podczas sesji ZooKeeper

Przyczyna:

  • Serwery HMaster lub HRegion wyłączają się, zgłaszając wyjątki.
  • Jeśli przeanalizujesz logi, dowiesz się, jakie wyjątki faktycznie zostały zgłoszone.

Poniżej przedstawiono wyjątek zgłoszony z powodu zdarzenia wygasłego ZooKeeper. Podświetlone zdarzenia to niektóre z wyjątków, które wystąpiły w pliku dziennika.

Kod plików dziennika wyświetlany poniżej:

WARN org.apache.zookeeper.ClientCnxn: Exception
closing session 0x278bd16a96000f to sun.nio.ch.SelectionKeyImpl@355811ec

java.io.IOException: TIMED OUT	
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:906)
WARN org.apache.hadoop.hbase.util.Sleeper: We slept 79410ms, ten times longer than scheduled: 5000
INFO org.apache.zookeeper.ClientCnxn: Attempting connection to server hostname/IP:PORT
INFO org.apache.zookeeper.ClientCnxn: Priming connection to java.nio.channels.SocketChannel[connected local=/IP:PORT remote=hostname/IP:PORT]
INFO org.apache.zookeeper.ClientCnxn: Server connection successful
WARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000d to sun.nio.ch.SelectionKeyImpl@3544d65e

java.io.IOException: Session Expired	 
at org.apache.zookeeper.ClientCnxn$SendThread.readConnectResult(ClientCnxn.java:589)
at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:709)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:945)
ERROR org.apache.hadoop.hbase.regionserver.HRegionServer: ZooKeeper session expired

Rozwiązanie:

  • Domyślny rozmiar pamięci RAM to 1 GB. W przypadku długotrwałych importów należy zachować pojemność pamięci RAM większą niż 1 GB.
  • Zwiększ limit czasu sesji ZooKeeper.
  • Aby zwiększyć limit czasu sesji ZooKeeper, zmodyfikuj następującą właściwość w pliku hbase-site.xml, znajdującym się w ścieżce folderu hbase/conf.
  • Domyślny limit czasu sesji wynosi 60 sekund. Można go zmienić na 120 sekund, jak opisano poniżej.
<property>
    <name> zookeeper.session.timeout </name>
    <value>1200000</value>
</property>
<property>
    <name> hbase.zookeeper.property.tickTime </name>
    <value>6000</value>
</property>

FAQ

HBase wymaga obsługi Java środowisko wykonawcze z ustawionym parametrem JAVA_HOME. Tryby pseudorozproszony i w pełni rozproszony również wymagają uruchomienia Hadoop HDFS klastra. Tryb autonomiczny wymaga tylko Java, ponieważ wykorzystuje lokalny system plików i zawiera własnego ZooKeepera.

Nie dotyczy trybu autonomicznego, który działa w lokalnym systemie plików w pojedynczej maszynie wirtualnej Java (JVM) bez demonów Hadoop. Tryby pseudorozproszony i w pełni rozproszony wymagają Hadoop, ponieważ przechowują dane w systemie HDFS i zależą od jego węzłów nazw (NameNode) i węzłów danych (DataNode).

Edytuj plik conf/hbase-env.sh i dodaj wiersz export JAVA_HOME=/path/to/your/jdk, wskazujący na katalog główny JDK. HBase odczytuje tę wartość podczas uruchamiania. Możesz również wyeksportować JAVA_HOME do pliku ~/.bashrc, aby powłoka mogła go znaleźć. Java globalnie.

W tym przewodniku omówiono HBase 1.1.2, ale aktualne stabilne wersje to HBase 2.5.x i 2.6.x, a wersja 3.0 jest w wersji beta. Nowsze wersje wymagają Java 8 lub 11. Kroki pobierania, konfiguracji i uruchamiania pozostają zasadniczo takie same.

Uruchom polecenie jps i wyszukaj proces HMaster, a także HRegionServer i HQuorumPeer w trybach rozproszonych. Możesz również otworzyć interfejs webowy HBase Master lub uruchomić polecenie status w wierszu poleceń. powłoka hbase aby potwierdzić, że klaster jest aktywny.

Domyślnie serwer HBase Master nasłuchuje na porcie 16000, a interfejs użytkownika sieci Web ma numer 16010. Każdy serwer regionalny używa portu 16020, a interfejs użytkownika ma numer 16030. ZooKeeper nasłuchuje na porcie klienta 2181, który jest ustawiany przez hbase.zookeeper.property.clientPort.

Asystenci AI i narzędzia do analizy logów oparte na uczeniu maszynowym skanują logi HBase i ZooKeeper, grupują je i wskazują przyczynę błędów, takich jak wygasła sesja czy awaria kworum. Sugerują poprawki konfiguracji, choć inżynier powinien potwierdzić każdą zmianę przed jej wprowadzeniem.

Tak. Drugi pilot GitHub tworzy fragmenty kodu hbase-site.xml, wpisy hbase-env.sh i skrypty powłoki startowej na podstawie krótkiego komentarza. RevPrzed uruchomieniem przejrzyj sugestie dotyczące poprawnych nazw właściwości, ścieżek i portów, ponieważ wygenerowana konfiguracja może odwoływać się do nieaktualnych ustawień domyślnych.

Podsumuj ten post następująco: