Cum se instalează HBase pe Ubuntu: Ghid pas cu pas

⚡ Rezumat inteligent

Instalarea HBase pe Ubuntu rulează în trei moduri — independent, pseudo-distribuit și complet distribuit — acoperind cum se descarcă fișierul tarball al versiunii, se editează hbase-env.sh și hbase-site.xml, se pornesc daemonii și se corectează erorile comune de pornire.

  • 🧩 Moduri de instalare: Se execută independent într-o singură JVM pe sistemul de fișiere local; modurile distribuite stochează datele în Hadoop HDFS.
  • ⬇️ Descarcă: Preluați fișierul tarball binar HBase de pe site-ul Apache HBase și dezarhivați-l în directorul dvs. home.
  • ⚙️ Configurare: Setați JAVA_HOME și HBASE_HOME, apoi definiți hbase.rootdir și directoarele ZooKeeper în hbase-site.xml.
  • ▶ ️ startup: Rulați comanda start-hbase.sh, confirmați comanda HMaster cu jps, apoi deschideți promptul interactiv folosind shell-ul hbase.
  • 🌐 Pseudo-distribuit: Indică hbase.rootdir către HDFS, activează hbase.cluster.distributed și setează cvorumul și portul clientului pentru ZooKeeper.
  • 🩹 Depanare: Rezolvați erorile de tip region-server, cvorum ZooKeeper, root-director și session-timeout editând fișierele hosts și hbase-site.xml.

Cum se instalează Apache HBase pe Ubuntu în moduri independente, pseudo-distribuite și complet distribuite

Apache HBase este o platformă distribuită, bază de date orientată pe coloane care rulează pe sistemul de fișiere distribuit Hadoop (HDFS). Înainte de a începe, asigurați-vă că există un sistem compatibil Java runtime-ul este instalat și JAVA_HOME este setat; modurile pseudo-distribuit și complet distribuit necesită, de asemenea, un sistem funcțional Hadoop instalare.

Moduri de instalare Apache HBase

Apache HBase poate fi instalat în trei moduri. Caracteristicile acestor moduri sunt menționate mai jos.

1) Instalare în mod autonom (Fără dependență de sistemul Hadoop)

  • Acesta este modul implicit al HBase.
  • Rulează împotriva sistemului de fișiere local.
  • Nu folosește Hadoop HDFS.
  • Doar daemonul HMaster poate rula.
  • Nu este recomandat pentru un mediu de producție.
  • Rulează într-o singură JVM.

2) Instalare în mod pseudo-distribuit (sistem Hadoop cu un singur nod + instalare HBase)

  • Funcționează mai departe Hadoop HDFS.
  • Toți daemonii rulează pe un singur nod.
  • Recomandat pentru un mediu de producție.

3) Instalare în mod complet distribuit (mediu Hadoop multinod + instalare HBase)

  • Funcționează mai departe Hadoop HDFS.
  • Toți daemonii rulează pe toate nodurile prezente în cluster.
  • Recomandat cu căldură pentru un mediu de producție.

Pentru instalarea Hadoop, consultați acest articol Ghid de instalare Hadoop.

Capturile de ecran de mai jos utilizează HBase 1.1.2. Versiunile stabile actuale sunt seriile HBase 2.5.x și 2.6.x (Java 8 sau 11), dar pașii de instalare și fișierele de configurare rămân în esență aceiași.

Cum să descărcați versiunea stabilă a fișierului HBase tar

Pasul 1) Accesați Pagina oficială de descărcări Apache HBase pentru a descărca HBase. Se va deschide pagina web de descărcări, așa cum se arată mai jos.

Deschideți pagina de descărcări Apache HBase într-un browser pentru a obține fișierul tarball al versiunii

Pasul 2) Selectați versiunea stabilă, așa cum se arată mai jos, versiunea HBase 1.1.2.

Selectarea versiunii stabile HBase 1.1.2 pe pagina de descărcare

Pasul 3) Faceți clic pe hbase-1.1.2-bin.tar.gz. Fișierul tar va fi descărcat. Copiați fișierul tar într-o locație de instalare.

Dând clic pe linkul binar hbase-1.1.2-bin.tar.gz pentru a descărca fișierul tar

Cum se instalează HBase în Ubuntu cu modul Standalone

Iată procesul pas cu pas pentru instalarea în modul standalone a HBase în Ubuntu:

Pasul 1) Executați comanda de mai jos. Plasați hbase-1.1.2-bin.tar.gz în /home/hduser.

Pasul 2) Dezarhivați fișierul executând comanda $tar -xvf hbase-1.1.2-bin.tar.gz. Conținutul va fi dezarhivat și hbase-1.1.2 va fi creat în locația /home/hduser.

Pasul 3) Deschideți hbase-env.sh ca mai jos și menționați calea JAVA_HOME în locație, așa cum se arată mai jos.

Editarea fișierului hbase-env.sh pentru a seta calea JAVA_HOME pentru modul autonom

Pasul 4) Deschideți fișierul ~/.bashrc și menționați calea HBASE_HOME așa cum se arată mai jos.

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

Fișierul ~/.bashrc actualizat cu intrarea HBASE_HOME este prezentat mai jos.

Adăugarea căii HBASE_HOME la fișierul bashrc pentru modul autonom

Pasul 5) Adăugați proprietăți în fișier. Deschideți hbase-site.xml și plasați următoarele proprietăți în fișier.

hduser@ubuntu$ gedit hbase-site.xml (codul de mai jos)

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

Fișierul hbase-site.xml s-a deschis în gedit este prezentat mai jos.

hbase-site.xml deschis în gedit cu proprietățile independente rootdir și ZooKeeper

Aici plasăm două proprietăți:

  • Unul pentru directorul rădăcină HBase și
  • Al doilea pentru directorul de date care corespunde Ingrijitor zoo.

Toate activitățile HMaster și ZooKeeper indică acest fișier hbase-site.xml.

Pasul 6) Menționați IP-urile. Deschideți fișierul hosts prezent în locația /etc. și menționați IP-urile așa cum se arată mai jos.

Editarea fișierului /etc/hosts pentru a mapa adresele IP ale mașinilor

Pasul 7) Acum rulați start-hbase.sh în locația hbase-1.1.1/bin, așa cum se arată mai jos. Apoi puteți verifica cu comanda jps dacă HMaster rulează sau nu.

Rezultatul comenzii jps care arată procesul HMaster rulând în mod autonom

Pasul 8) Porniți shell-ul HBase. Shell-ul HBase poate fi pornit utilizând shell hbase comandă și va intra în modul shell interactiv, așa cum se arată în captura de ecran de mai jos. Odată ce intră în modul shell, putem executa tot felul de comenzi.

Promptul interactiv al shell-ului HBase a fost pornit cu comanda shell hbase

Modul autonom nu necesită demoni Hadoop pentru a porni. HBase poate rula independent.

Mod de instalare pseudodistribuit HBase

Aceasta este o altă metodă de instalare a Apache HBase, cunoscută sub numele de mod de instalare pseudo-distribuit. Mai jos sunt pașii pentru a instala HBase prin modul pseudo-distribuit.

Pasul 1) Plasați hbase-1.1.2-bin.tar.gz în /home/hduser.

Pasul 2) Dezarhivați fișierul executând comanda $tar -xvf hbase-1.1.2-bin.tar.gz. Conținutul va fi dezarhivat și hbase-1.1.2 va fi creat în locația /home/hduser.

Pasul 3) Deschideți hbase-env.sh așa cum este arătat mai jos, menționați calea JAVA_HOME și calea serverelor regionale în locație și exportați comanda așa cum se arată mai jos.

Editarea fișierului hbase-env.sh cu JAVA_HOME și calea serverelor regionale pentru modul pseudo-distribuit

Pasul 4) În acest pas, vom deschide fișierul ~/.bashrc și vom menționa calea HBASE_HOME, așa cum se arată în captura de ecran de mai jos.

Setarea căii HBASE_HOME în fișierul bashrc pentru modul pseudo-distribuit

Pasul 5) Deschideți hbase-site.xml și menționați proprietățile de mai jos în fișier (codul este ca mai jos).

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

Fișierul hbase-site.xml cu proprietățile pseudo-distribuite este prezentat mai jos.

hbase-site.xml cu proprietățile pseudo-distribuite HDFS și ZooKeeper

Configurația ZooKeeper rămasă este prezentată mai jos.

Continuarea configurației hbase-site.xml ZooKeeper pentru modul pseudo-distribuit

Fiecare proprietate din fișier joacă un rol specific:

  • Configurarea directorului rădăcină HBase în proprietatea hbase.rootdir.
  • Pentru o configurare distribuită, hbase.cluster.distributed trebuie setat la true.
  • Proprietatea de cvorum ZooKeeper ar trebui configurată aici.
  • Replicarea este configurată în proprietatea dfs.replication. În mod implicit, plasăm replicarea la 1. În modul complet distribuit, sunt prezente mai multe noduri de date, așadar puteți crește replicarea plasând o valoare mai mare decât 1 în proprietatea dfs.replication.
  • Portul clientului ar trebui menționat în proprietatea hbase.zookeeper.property.clientPort.
  • Directorul de date ZooKeeper poate fi menționat în proprietatea hbase.zookeeper.property.dataDir.

Pasul 6) Porniți mai întâi daemonii Hadoop, iar apoi porniți daemonii HBase, așa cum se arată mai jos. Mai întâi trebuie să porniți daemonii Hadoop utilizând comanda ./start-all.sh, așa cum se arată mai jos.

Rularea comenzii start-all.sh pentru a porni daemonii Hadoop

După aceea, porniți daemonii HBase cu hbase-start.sh, așa cum se arată mai jos.

Pornirea daemonilor HBase cu scriptul start-hbase.sh în mod pseudo-distribuit

Acum verificați procesele care rulează cu comanda jps, așa cum se arată mai jos.

Rezultatul comenzii jps care listează daemonii Hadoop și HBase care rulează

Instalare în mod complet distribuit HBase

Modul complet distribuit extinde configurația pseudo-distribuită pe un cluster real.

  • Această configurație funcționează în modul cluster Hadoop, unde mai multe noduri apar în cluster și rulează.
  • Instalarea este aceeași ca în modul pseudo-distribuit; singura diferență este că va apărea pe mai multe noduri.
  • Fișierele de configurare menționate în hbase-site.xml și hbase-env.sh sunt aceleași cu cele menționate în pseudo mode.

În modul complet distribuit, asigurați-vă că versiunea Hadoop din clusterul dvs. se potrivește cu bibliotecile Hadoop incluse în pachetul HBase, astfel încât daemonii să comunice corect.

Depanarea instalării HBase

1) Problema: Serverul principal se inițializează, dar serverele regionale nu se inițializează

Comunicarea dintre serverul Master și serverele regionale se face prin adresele IP ale acestora. Serverul Master ascultă serverele regionale care rulează sau care au adresa IP 127.0.0.1. Adresa IP 127.0.0.1 este gazda locală și se rezolvă la gazda locală a serverului Master.

Cauza:

În comunicarea duală dintre serverele regionale și serverul Master, serverul regional informează continuu serverul Master că adresa sa IP este 127.0.0.1.

Soluţie:

  • Eliminați nodul nume server principal din intrarea gazdă locală prezentă în fișierul hosts.
  • Locația fișierului gazdă: /etc/hosts.

Ce să schimbăm:

Deschideți /etc/hosts și accesați această locație.

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

Modificați configurația de mai sus după cum urmează (eliminați numele serverului regional așa cum este evidențiat mai sus).

127.0.0.1    localhost.localdomainlocalhost
: : 1 localhost3.localdomain3 localdomain3

2) Problemă: Nu am putut găsi adresa mea: XYZ în lista de servere de cvorum ZooKeeper

Cauza:

  • Serverul ZooKeeper nu a putut porni și afișează o eroare de genul .xyz în numele serverului.
  • HBase încearcă să pornească un server ZooKeeper pe o mașină, dar în același timp, mașina nu se poate regăsi în configurația de cvorum prezentă în configurația hbase.zookeeper.quorum.

Soluţie:

  • Înlocuiți numele gazdei cu un nume de gazdă prezentat în mesajul de eroare.
  • Dacă aveți un server DNS, puteți seta următoarele configurații în hbase-site.xml: hbase.zookeeper.dns.interface și hbase.zookeeper.dns.nameserver.

3) Problema enunțată: Crearea unui director rădăcină pentru HBase prin Hadoop DFS

  • Masterul spune că trebuie să rulați scriptul de migrare HBase.
  • La rularea acesteia, scriptul de migrare HBase răspunde că nu există fișiere în directorul rădăcină.

Cauza:

  • Un nou director a fost creat pentru HBase folosind sistemul de fișiere distribuit Hadoop.
  • Aici HBase așteaptă două posibilități:

1) Directorul rădăcină nu există.

2) O instanță HBase anterioară care rulează a fost inițializată anterior.

Soluţie:

  • Confirmați că directorul rădăcină HBase nu există în prezent sau că a fost inițializat de o rulare anterioară a instanței HBase.
  • Ca parte a soluției, urmați acești pași.

Pasul 1) Folosiți dfs Hadoop pentru a șterge directorul rădăcină HBase.

Pasul 2) HBase creează și inițializează directorul singur.

4) Problemă: Evenimente de expirare a sesiunii ZooKeeper

Cauza:

  • Serverele HMaster sau HRegion s-au închis generând excepții.
  • Dacă observați jurnalele, puteți afla excepțiile reale care au fost generate.

Următorul exemplu prezintă excepția generată din cauza unui eveniment ZooKeeper expirat. Evenimentele evidențiate sunt câteva dintre excepțiile care au apărut în fișierul jurnal.

Codul fișierelor jurnal, așa cum este afișat mai jos:

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

Soluţie:

  • Dimensiunea implicită a memoriei RAM este de 1 GB. Pentru importuri de lungă durată, mențineți o capacitate RAM mai mare de 1 GB.
  • Măriți timpul de expirare al sesiunii pentru ZooKeeper.
  • Pentru a crește timeout-ul sesiunii ZooKeeper, modificați următoarea proprietate din hbase-site.xml, prezentă în calea folderului hbase/conf.
  • Timpul implicit de expirare a sesiunii este de 60 de secunde. Îl puteți modifica la 120 de secunde, așa cum este menționat mai jos.
<property>
    <name> zookeeper.session.timeout </name>
    <value>1200000</value>
</property>
<property>
    <name> hbase.zookeeper.property.tickTime </name>
    <value>6000</value>
</property>

Întrebări frecvente

HBase are nevoie de un suport Java runtime cu JAVA_HOME setat. Modurile pseudo-distribuite și complet distribuite necesită, de asemenea, o funcție de rulare Hadoop HDFS cluster. Modul independent necesită doar Java, deoarece folosește sistemul de fișiere local și include propriul ZooKeeper.

Nu este potrivit pentru modul autonom, care rulează pe sistemul de fișiere local într-o singură JVM fără daemoni Hadoop. Modurile pseudo-distribuite și complet distribuite necesită Hadoop, deoarece stochează date în HDFS și depind de NameNode și DataNode-uri.

Editați fișierul conf/hbase-env.sh și adăugați linia export JAVA_HOME=/path/to/your/jdk, indicând către rădăcina JDK-ului. HBase citește această valoare la pornire. De asemenea, puteți exporta JAVA_HOME în ~/.bashrc, astfel încât shell-ul să găsească Java la nivel global.

Acest ghid prezintă HBase 1.1.2, dar versiunile stabile actuale sunt în liniile HBase 2.5.x și 2.6.x, iar 3.0 este în versiune beta. Versiunile mai noi necesită Java 8 sau 11. Pașii de descărcare, configurare și pornire rămân în esență aceiași.

Rulați comanda jps și căutați procesul HMaster, plus HRegionServer și HQuorumPeer în modurile distribuite. De asemenea, puteți deschide interfața web HBase Master sau puteți rula status în interiorul shell hbase pentru a confirma că clusterul este activ.

În mod implicit, HBase Master ascultă pe portul 16000 cu o interfață web pe 16010, iar fiecare server regional folosește 16020 cu o interfață web pe 16030. ZooKeeper ascultă pe portul client 2181, care este setat prin hbase.zookeeper.property.clientPort.

Asistenții inteligenți artificiali și instrumentele de analiză a jurnalelor bazate pe învățarea automată scanează jurnalele HBase și ZooKeeper, le grupează în grupuri și identifică cauza principală a erorilor, cum ar fi expirarea sesiunii sau erorile de cvorum. Aceștia sugerează remedieri de configurare, deși un inginer ar trebui să confirme fiecare modificare înainte de a o aplica.

Da. Copilotul GitHub creează fragmente de fișiere hbase-site.xml, intrări hbase-env.sh și scripturi shell de pornire dintr-un comentariu scurt. RevVizualizați sugestiile sale pentru numele corecte ale proprietăților, căile și porturile înainte de a le rula, deoarece configurația generată poate face referire la valori implicite învechite.

Rezumați această postare cu: