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.

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.
Pasul 2) Selectați versiunea stabilă, așa cum se arată mai jos, versiunea HBase 1.1.2.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Configurația ZooKeeper rămasă este prezentată mai jos.
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.
După aceea, porniți daemonii HBase cu hbase-start.sh, așa cum se arată mai jos.
Acum verificați procesele care rulează cu comanda jps, așa cum se arată mai jos.
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>
















