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.

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.
Krok 2) Wybierz wersję stabilną, jak pokazano poniżej: HBase 1.1.2.
Krok 3) Kliknij hbase-1.1.2-bin.tar.gz. Zostanie pobrany plik tar. Skopiuj plik tar do folderu instalacji.
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.
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.
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.
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.
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.
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ń.
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.
Krok 4) W tym kroku otworzymy plik ~/.bashrc i podajemy ścieżkę HBASE_HOME, jak pokazano na zrzucie ekranu poniżej.
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.
Pozostała konfiguracja ZooKeeper pokazana jest poniżej.
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.
Następnie uruchom demony HBase za pomocą hbase-start.sh, jak pokazano poniżej.
Teraz sprawdź uruchomione procesy za pomocą polecenia jps, jak pokazano poniżej.
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>
















