Kako instalirati HBase na Ubuntu: Vodič korak po korak

⚡ Pametni sažetak

Instalacija HBase-a uključena Ubuntu radi u tri načina rada - samostalnom, pseudodistribuiranom i potpuno distribuiranom - pokrivajući kako preuzeti tarball izdanja, urediti hbase-env.sh i hbase-site.xml, pokrenuti daemone i ispraviti uobičajene pogreške pri pokretanju.

  • 🧩 Načini instalacije: Samostalno se izvršava u jednom JVM-u na lokalnom datotečnom sustavu; distribuirani načini rada pohranjuju podatke u Hadoop HDFS.
  • ⬇️ Preuzimanje: Preuzmite binarnu HBase datoteku s Apache HBase stranice i raspakirajte je u svoj početni direktorij.
  • ️ konfiguracija: Postavite JAVA_HOME i HBASE_HOME, zatim definirajte hbase.rootdir i ZooKeeper direktorije u hbase-site.xml.
  • ▶ ️ Stavljanje u pogon: Pokrenite start-hbase.sh, potvrdite HMaster s jps, a zatim otvorite interaktivni prompt pomoću hbase shell-a.
  • 🌐 Pseudo-distribuirano: Usmjerite hbase.rootdir na HDFS, omogućite hbase.cluster.distributed i postavite kvorum i klijentski port za ZooKeeper.
  • 🩹 Rješavanje problema: Riješite pogreške regionalnog poslužitelja, kvoruma ZooKeepera, korijenskog direktorija i isteka vremena sesije uređivanjem datoteka hosts i hbase-site.xml.

Kako instalirati Apache HBase na Ubuntu u samostalnom, pseudodistribuiranom i potpuno distribuiranom načinu rada

Apache HBase je distribuirani, stupčasto orijentirana baza podataka koji se izvodi na Hadoop distribuiranom datotečnom sustavu (HDFS). Prije nego što počnete, provjerite podržani Java runtime je instaliran i JAVA_HOME je postavljen; pseudodistribuirani i potpuno distribuirani načini rada također zahtijevaju radni Hadoop montaža.

Načini instalacije Apache HBase

Apache HBase može se instalirati u tri načina. Značajke ovih načina rada navedene su u nastavku.

1) Instalacija samostalnog načina rada (bez ovisnosti o Hadoop sustavu)

  • Ovo je zadani način rada HBasea.
  • Radi protiv lokalnog datotečnog sustava.
  • Ne koristi Hadoop HDFS.
  • Samo HMaster daemon može raditi.
  • Ne preporučuje se za produkcijsko okruženje.
  • Radi u jednom JVM-u.

2) Instalacija pseudo-distribuiranog načina (Hadoop sustav s jednim čvorom + HBase instalacija)

  • Trči dalje Hadoop HDFS.
  • Svi demoni se izvode na jednom čvoru.
  • Preporučuje se za produkcijsko okruženje.

3) Potpuno distribuirana instalacija (Multinode Hadoop okruženje + HBase instalacija)

  • Trči dalje Hadoop HDFS.
  • Svi demoni se izvršavaju na svim čvorovima prisutnim u klasteru.
  • Toplo se preporučuje za produkcijsko okruženje.

Za instalaciju Hadoop-a, pogledajte ovo Vodič za instalaciju Hadoop-a.

Snimke zaslona u nastavku koriste HBase 1.1.2. Trenutna stabilna izdanja su serije HBase 2.5.x i 2.6.x (Java 8 ili 11), ali koraci instalacije i konfiguracijske datoteke ostaju u biti isti.

Kako preuzeti stabilnu verziju HBase tar datoteke

Korak 1) Idite na službena stranica za preuzimanje Apache HBase-a za preuzimanje HBase-a. Otvorit će se web stranica za preuzimanje kao što je prikazano dolje.

Stranica za preuzimanje Apache HBase-a otvorena u pregledniku radi preuzimanja tarballa izdanja

Korak 2) Odaberite stabilnu verziju kao što je prikazano dolje, HBase 1.1.2 verzija.

Odabir stabilne verzije HBase 1.1.2 na stranici za preuzimanje

Korak 3) Kliknite na hbase-1.1.2-bin.tar.gz. Preuzet će se tar datoteka. Kopirajte tar datoteku na mjesto instalacije.

Klikom na binarnu poveznicu hbase-1.1.2-bin.tar.gz preuzimate tar datoteku

Kako instalirati HBase u Ubuntu sa samostalnim načinom rada

Evo korak-po-korak postupka instalacije HBase samostalnog načina rada u Ubuntu:

Korak 1) Postavite sljedeću naredbu. Stavite hbase-1.1.2-bin.tar.gz u /home/hduser.

Korak 2) Raspakirajte ga izvršavanjem naredbe $tar -xvf hbase-1.1.2-bin.tar.gz. To će raspakirati sadržaj i stvoriti hbase-1.1.2 na lokaciji /home/hduser.

Korak 3) Otvorite hbase-env.sh kao što je prikazano dolje i navedite putanju JAVA_HOME u lokaciji, kao što je prikazano dolje.

Uređivanje hbase-env.sh datoteke za postavljanje JAVA_HOME putanje za samostalni način rada

Korak 4) Otvorite datoteku ~/.bashrc i navedite putanju HBASE_HOME kao što je prikazano dolje.

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

Ažurirana ~/.bashrc datoteka s HBASE_HOME unosom prikazana je dolje.

Dodavanje HBASE_HOME putanje u bashrc datoteku za samostalni način rada

Korak 5) Dodajte svojstva u datoteku. Otvorite hbase-site.xml i postavite sljedeća svojstva unutar datoteke.

hduser@ubuntu$ gedit hbase-site.xml (kod kao u nastavku)

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

Datoteka hbase-site.xml otvorena je u gedit prikazano je u nastavku.

hbase-site.xml otvoreno u gedit sa samostalnim svojstvima rootdir i ZooKeeper

Ovdje postavljamo dva svojstva:

  • Jedan za korijenski direktorij HBase-a i
  • Drugi za direktorij podataka koji odgovara Čuvar zoo vrta.

Sve aktivnosti HMastera i ZooKeepera upućuju na ovu hbase-site.xml datoteku.

Korak 6) Navedite IP adrese. Otvorite datoteku hosts koja se nalazi u direktoriju /etc. i navedite IP adrese kao što je prikazano dolje.

Uređivanje datoteke /etc/hosts za mapiranje IP adresa računala

Korak 7) Sada pokrenite start-hbase.sh na lokaciji hbase-1.1.1/bin kao što je prikazano dolje. Zatim možete provjeriti naredbom jps radi li HMaster ili ne.

Izlaz naredbe jps koji prikazuje proces HMaster koji se izvršava u samostalnom načinu rada

Korak 8) Pokrenite HBase Shell. HBase shell se može pokrenuti pomoću hbase ljuska naredbu i ući će u interaktivni način rada ljuske kao što je prikazano na snimci zaslona ispod. Nakon što uđe u način rada ljuske, možemo izvršavati sve vrste naredbi.

Interaktivni HBase shell prompt pokrenut hbase shell naredbom

Samostalni način rada ne zahtijeva Hadoop demone za pokretanje. HBase može raditi neovisno.

HBase pseudo distribuirani način instalacije

Ovo je još jedna metoda za instalaciju Apache HBase-a, poznata kao pseudo distribuirani način instalacije. U nastavku su navedeni koraci za instalaciju HBase-a putem pseudo distribuiranog načina.

Korak 1) Stavite hbase-1.1.2-bin.tar.gz u /home/hduser.

Korak 2) Raspakirajte ga izvršavanjem naredbe $tar -xvf hbase-1.1.2-bin.tar.gz. To će raspakirati sadržaj i stvoriti hbase-1.1.2 na lokaciji /home/hduser.

Korak 3) Otvorite hbase-env.sh kao što je prikazano u nastavku, navedite putanju JAVA_HOME i putanju regionalnih poslužitelja u lokaciji i izvezite naredbu kao što je prikazano u nastavku.

Uređivanje hbase-env.sh s JAVA_HOME i putanjom Region Servers za pseudo-distribuirani način rada

Korak 4) U ovom koraku otvorit ćemo datoteku ~/.bashrc i spomenuti putanju HBASE_HOME kao što je prikazano na snimci zaslona ispod.

Postavljanje HBASE_HOME putanje u bashrc datoteci za pseudo-distribuirani način rada

Korak 5) Otvorite hbase-site.xml i navedite sljedeća svojstva u datoteci (kod kao u nastavku).

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

Datoteka hbase-site.xml s pseudodistribuiranim svojstvima prikazana je u nastavku.

hbase-site.xml s pseudodistribuiranim svojstvima HDFS-a i ZooKeepera

Preostala konfiguracija ZooKeepera prikazana je u nastavku.

Nastavak konfiguracije ZooKeepera hbase-site.xml za pseudodistribuirani način rada

Svako svojstvo u datoteci igra određenu ulogu:

  • Postavljanje korijenskog direktorija HBase u svojstvu hbase.rootdir.
  • Za distribuiranu konfiguraciju, hbase.cluster.distributed mora biti postavljen na true.
  • Ovdje treba postaviti svojstvo kvoruma ZooKeepera.
  • Replikacija se postavlja u svojstvu dfs.replication. Prema zadanim postavkama, replikacija se postavlja na 1. U potpuno distribuiranom načinu rada prisutno je više podatkovnih čvorova, tako da replikaciju možete povećati postavljanjem vrijednosti veće od 1 u svojstvo dfs.replication.
  • Klijentski port treba biti naveden u svojstvu hbase.zookeeper.property.clientPort.
  • ZooKeeperov direktorij podataka može se spomenuti u svojstvu hbase.zookeeper.property.dataDir.

Korak 6) Prvo pokrenite Hadoop daemone, a nakon toga pokrenite HBase daemone kao što je prikazano dolje. Prvo morate pokrenuti Hadoop daemone pomoću naredbe ./start-all.sh kao što je prikazano dolje.

Pokretanje Hadoop daemona pomoću naredbe start-all.sh

Nakon toga, pokrenite HBase daemone s hbase-start.sh, kao što je prikazano dolje.

Pokretanje HBase daemona pomoću skripte start-hbase.sh u pseudodistribuiranom načinu rada

Sada provjerite pokrenute procese pomoću naredbe jps, kao što je prikazano dolje.

Izlaz naredbe jps s popisom pokrenutih Hadoop i HBase demona

Instalacija HBase potpuno distribuiranog načina rada

Potpuno distribuirani način rada proširuje pseudodistribuiranu postavku na stvarni klaster.

  • Ova postavka radi u Hadoop klaster načinu rada, gdje se više čvorova pojavljuje i radi u klasteru.
  • Instalacija je ista kao i pseudo distribuirani način rada; jedina je razlika što će se pojaviti na više čvorova.
  • Konfiguracijske datoteke spomenute u hbase-site.xml i hbase-env.sh iste su kao one spomenute u pseudo načinu rada.

U potpuno distribuiranom načinu rada, provjerite odgovara li verzija Hadoop-a na vašem klasteru Hadoop bibliotekama koje dolaze s HBase-om kako bi demoni ispravno komunicirali.

Rješavanje problema s instalacijom HBase

1) Izjava o problemu: Glavni poslužitelj se inicijalizira, ali regionalni poslužitelji se ne inicijaliziraju

Komunikacija između glavnog poslužitelja i regionalnih poslužitelja odvija se putem njihovih IP adresa. Glavni poslužitelj osluškuje regionalne poslužitelje koji su pokrenuti ili imaju IP adresu 127.0.0.1. IP adresa 127.0.0.1 je lokalni host i razrješava se kao lokalni host glavnog poslužitelja.

Uzrok:

U dvostrukoj komunikaciji između regionalnih poslužitelja i glavnog poslužitelja, regionalni poslužitelj kontinuirano obavještava glavni poslužitelj da je njegova IP adresa 127.0.0.1.

Rješenje:

  • Uklonite čvor naziva glavnog poslužitelja iz unosa lokalnog hosta koji se nalazi u datoteci hosts.
  • Lokacija datoteke hosta: /etc/hosts.

Što promijeniti:

Otvorite /etc/hosts i idite na ovu lokaciju.

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

Izmijenite gornju konfiguraciju kao što je dolje navedeno (uklonite naziv regionalnog poslužitelja kao što je gore istaknuto).

127.0.0.1    localhost.localdomainlocalhost
: : 1 localhost3.localdomain3 localdomain3

2) Izjava o problemu: Nisam mogao pronaći svoju adresu: XYZ na popisu ZooKeeper kvorum servera

Uzrok:

  • ZooKeeper poslužitelj nije se mogao pokrenuti i u nazivu poslužitelja izbacuje grešku kao što je .xyz.
  • HBase pokušava pokrenuti ZooKeeper poslužitelj na računalu, ali istovremeno se računalo ne može pronaći u konfiguraciji kvoruma koja je prisutna u konfiguraciji hbase.zookeeper.quorum.

Rješenje:

  • Zamijenite naziv hosta nazivom hosta koji je prikazan u poruci o pogrešci.
  • Ako imate DNS poslužitelj, možete postaviti sljedeće konfiguracije u hbase-site.xml: hbase.zookeeper.dns.interface i hbase.zookeeper.dns.nameserver.

3) Izjava problema: Kreiran je korijenski direktorij za HBase putem Hadoop DFS-a

  • Master kaže da trebate pokrenuti skriptu za migracije HBase-a.
  • Nakon pokretanja toga, skripta za migracije HBase odgovara da u korijenskom direktoriju nema datoteka.

Uzrok:

  • Novi direktorij je kreiran za HBase pomoću Hadoop distribuiranog datotečnog sustava.
  • Ovdje HBase očekuje dvije mogućnosti:

1) Korijenski direktorij ne postoji.

2) Prethodna pokrenuta instanca HBase-a je već inicijalizirana.

Rješenje:

  • Potvrdite da korijenski direktorij HBase trenutno ne postoji ili da je inicijaliziran prethodnim pokretanjem instance HBase.
  • Kao dio rješenja, slijedite ove korake.

Korak 1) Koristite Hadoop dfs za brisanje korijenskog direktorija HBase.

Korak 2) HBase samostalno stvara i inicijalizira direktorij.

4) Izjava o problemu: Događaji isteka ZooKeeper sesije

Uzrok:

  • HMaster ili HRegion poslužitelji su se isključili zbog iznimki.
  • Ako promatrate zapisnike, možete saznati stvarne iznimke koje su se pojavile.

Sljedeći primjer prikazuje iznimku koja se pojavila zbog događaja isteka ZooKeepera. Istaknuti događaji su neki od iznimaka koji su se pojavili u datoteci zapisnika.

Kod datoteka zapisnika kao što je prikazano u nastavku:

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

Rješenje:

  • Zadana veličina RAM-a je 1 GB. Za dugotrajne uvoze održavajte kapacitet RAM-a veći od 1 GB.
  • Povećajte vrijeme čekanja sesije za ZooKeeper.
  • Da biste povećali vrijeme čekanja sesije ZooKeepera, izmijenite sljedeće svojstvo u hbase-site.xml, koje se nalazi u putanji mape hbase/conf.
  • Zadano vrijeme isteka sesije je 60 sekundi. Možete ga promijeniti na 120 sekundi kao što je navedeno u nastavku.
<property>
    <name> zookeeper.session.timeout </name>
    <value>1200000</value>
</property>
<property>
    <name> hbase.zookeeper.property.tickTime </name>
    <value>6000</value>
</property>

Pitanja i odgovori

HBase treba podršku Java runtime s postavljenim JAVA_HOME. Pseudodistribuirani i potpuno distribuirani načini rada također zahtijevaju runtime Hadoop HDFS klaster. Samostalni način rada zahtijeva samo Java, jer koristi lokalni datotečni sustav i uključuje vlastiti ZooKeeper.

Ne za samostalni način rada, koji se izvodi na lokalnom datotečnom sustavu u jednom JVM-u bez Hadoop daemona. Pseudodistribuirani i potpuno distribuirani načini rada zahtijevaju Hadoop jer pohranjuju podatke u HDFS-u i ovise o njegovom NameNode i DataNodes.

Uredite conf/hbase-env.sh i dodajte redak export JAVA_HOME=/path/to/your/jdk, koji pokazuje na korijen JDK-a. HBase čita ovu vrijednost prilikom pokretanja. Također možete izvesti JAVA_HOME u ~/.bashrc tako da shell pronađe Java globalno.

Ovaj vodič prikazuje HBase 1.1.2, ali trenutna stabilna izdanja su u linijama HBase 2.5.x i 2.6.x, s verzijom 3.0 u beta verziji. Novije verzije trebaju Java 8 ili 11. Koraci preuzimanja, konfiguracije i pokretanja ostaju u biti isti.

Pokrenite naredbu jps i potražite proces HMaster, plus HRegionServer i HQuorumPeer u distribuiranim načinima rada. Također možete otvoriti web sučelje HBase Mastera ili pokrenuti status unutar hbase ljuska kako bi se potvrdilo da je klaster aktivan.

Prema zadanim postavkama, HBase Master osluškuje port 16000 s web sučeljem na 16010, a svaki Region Server koristi 16020 s sučeljem na 16030. ZooKeeper osluškuje klijentski port 2181, koji je postavljen putem hbase.zookeeper.property.clientPort.

AI asistenti i alati za analizu zapisnika strojnog učenja skeniraju zapisnike HBasea i ZooKeepera, grupiraju ih i otkrivaju uzrok pogrešaka poput isteka sesije ili kvarova kvoruma. Predlažu ispravke konfiguracije, iako bi inženjer trebao potvrditi svaku promjenu prije primjene.

Da. GitHub kopilot izrađuje isječke hbase-site.xml, unose hbase-env.sh i skripte za pokretanje ljuske iz kratkog komentara. RevPrije pokretanja pogledajte njegove prijedloge za ispravne nazive svojstava, putanje i portove, jer generirana konfiguracija može referencirati zastarjele zadane vrijednosti.

Sažmite ovu objavu uz: