Hogyan telepítsük a HBase-t? Ubuntu: Lépésről lépésre útmutató

⚡ Okos összefoglaló

HBase telepítés bekapcsolva Ubuntu három módban fut – önálló, pszeudo-elosztott és teljesen elosztott –, és ismerteti a kiadási tarball letöltését, a hbase-env.sh és a hbase-site.xml szerkesztését, a démonok indítását és a gyakori indítási hibák javítását.

  • 🧩 Telepítési módok: Az önálló módok egyetlen JVM-ben futnak a helyi fájlrendszeren; az elosztott módok az adatokat a Hadoop HDFS.
  • ⬇️ Letöltés: Szerezd meg a HBase bináris tarball fájlt az Apache HBase webhelyéről, és csomagold ki a saját könyvtárad alá.
  • 🇧🇷 Konfiguráció: Állítsd be a JAVA_HOME és a HBASE_HOME értékeket, majd definiáld a hbase.rootdir és a ZooKeeper könyvtárakat a hbase-site.xml fájlban.
  • ▶ ️ Üzembe helyezés: Futtassa a start-hbase.sh parancsot, erősítse meg a HMaster működését a jps paranccsal, majd nyissa meg az interaktív parancssort a hbase shell használatával.
  • 🌐 Pszeudo-elosztott: Irányítsd a hbase.rootdir fájlt HDFS-re, engedélyezd a hbase.cluster.distributed fájlt, és állítsd be a ZooKeeper kvórumát és kliensportját.
  • 🩹 Hibaelhárítás: A region-server, ZooKeeper quorum, root-directory és session-timeout hibák elhárítása a hosts és a hbase-site.xml szerkesztésével.

Hogyan telepítsük az Apache HBase-t? Ubuntu önálló, pszeudo-elosztott és teljesen elosztott módokban

Az Apache HBase egy elosztott, oszloporientált adatbázis amely a Hadoop elosztott fájlrendszer (HDFS) tetején fut. Mielőtt elkezdené, győződjön meg arról, hogy egy támogatott Java futtatókörnyezet telepítve van és a JAVA_HOME be van állítva; a pszeudo-elosztott és a teljesen elosztott módokhoz is működő Hadoop telepítés.

Apache HBase telepítési módok

Az Apache HBase három módban telepíthető. Ezen módok jellemzőit az alábbiakban ismertetjük.

1) Önálló módú telepítés (nincs függés a Hadoop rendszertől)

  • Ez a HBase alapértelmezett módja.
  • A helyi fájlrendszeren fut.
  • Nem használ Hadoop HDFS.
  • Csak a HMaster démon futtatható.
  • Nem ajánlott termelési környezetbe.
  • Egyetlen JVM-ben fut.

2) Ál-elosztott módú telepítés (egy csomópontos Hadoop rendszer + HBase telepítés)

  • Ez fut tovább Hadoop HDFS.
  • Minden démon egyetlen csomóponton fut.
  • Éles környezetbe ajánlott.

3) Teljesen elosztott módú telepítés (többcsomópontos Hadoop környezet + HBase telepítés)

  • Ez fut tovább Hadoop HDFS.
  • Minden démon a fürtben található összes csomóponton fut.
  • Éles környezetben kifejezetten ajánlott.

A Hadoop telepítéséhez lásd ezt Hadoop telepítési útmutató.

Az alábbi képernyőképek a HBase 1.1.2-t használják. A jelenlegi stabil kiadások a HBase 2.5.x és 2.6.x sorozatúak (Java 8 vagy 11), de a telepítési lépések és a konfigurációs fájlok lényegében ugyanazok maradnak.

A HBase tar fájl stabil verziójának letöltése

1. lépés) Lépjen a hivatalos Apache HBase letöltési oldal a HBase letöltéséhez. Megnyílik a letöltési weboldal, ahogy az alább látható.

Az Apache HBase letöltési oldalának megnyitása böngészőben a kiadási tarball letöltéséhez

2. lépés) Válassza ki a stabil verziót az alábbiak szerint, a HBase 1.1.2 verziót.

A stabil HBase 1.1.2 kiadás kiválasztása a letöltési oldalon

3. lépés) Kattintson a hbase-1.1.2-bin.tar.gz fájlra. Ez letölti a tar fájlt. Másolja a tar fájlt egy telepítési helyre.

A hbase-1.1.2-bin.tar.gz bináris hivatkozásra kattintva töltse le a tar fájlt.

A HBase telepítése Ubuntu Önálló móddal

Íme a HBase önálló módú telepítésének lépésről lépésre történő folyamata: Ubuntu:

1. lépés) Helyezd el az alábbi parancsot. Helyezd el a hbase-1.1.2-bin.tar.gz fájlt a /home/hduser mappában.

2. lépés) Csomagold ki a következő parancs végrehajtásával: $tar -xvf hbase-1.1.2-bin.tar.gz. A parancs kicsomagolja a tartalmat, és létrehozza a hbase-1.1.2 fájlt a /home/hduser helyen.

3. lépés) Nyissa meg a hbase-env.sh fájlt az alábbiak szerint, és említse meg a JAVA_HOME elérési utat az alábbiak szerint.

A hbase-env.sh szerkesztése a JAVA_HOME elérési út beállításához önálló módban

4. lépés) Nyissa meg a ~/.bashrc fájlt, és adja meg a HBASE_HOME elérési utat az alábbiak szerint.

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

A frissített ~/.bashrc fájl a HBASE_HOME bejegyzéssel alább látható.

A HBASE_HOME elérési út hozzáadása a bashrc fájlhoz önálló módhoz

5. lépés) Tulajdonságok hozzáadása a fájlhoz. Nyissa meg a hbase-site.xml fájlt, és illessze be a következő tulajdonságokat a fájlba.

hduser@ubuntu$ gedit hbase-site.xml (kód az alábbi)

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

A hbase-site.xml fájl megnyitása itt történt: gedit az alább látható.

hbase-site.xml megnyitva gedit az önálló rootdir és ZooKeeper tulajdonságokkal

Itt két tulajdonságot helyezünk el:

  • Egy a HBase gyökérkönyvtárához, és
  • A második az adatkönyvtárhoz tartozik, amely megfelel a következőnek: Állatgondozó.

Minden HMaster és ZooKeeper tevékenység erre a hbase-site.xml fájlra mutat.

6. lépés) Említse meg az IP-címeket. Nyissa meg az /etc. helyen található hosts fájlt, és az alábbiak szerint említse meg az IP-címeket.

A /etc/hosts fájl szerkesztése a gépek IP-címeinek leképezéséhez

7. lépés) Most futtassa a start-hbase.sh parancsot a hbase-1.1.1/bin helyen az alábbiak szerint. Ezután a jps paranccsal ellenőrizheti, hogy a HMaster fut-e vagy sem.

A jps parancs kimenete, amely a HMaster folyamat önálló módban futását mutatja.

8. lépés) Indítsa el a HBase Shell-t. A HBase shell a következővel indítható el: hbase shell parancsot, és interaktív shell módba lép, ahogy az az alábbi képernyőképen is látható. Miután shell módba lépett, mindenféle parancsot végrehajthatunk.

A HBase interaktív shell promptja a hbase shell paranccsal indult.

Az önálló mód nem igényel Hadoop démonokat az induláshoz. A HBase önállóan is futhat.

HBase pszeudo elosztott telepítési mód

Ez egy másik módszer az Apache HBase telepítésére, amelyet pszeudoelosztott telepítési módnak neveznek. Az alábbiakban a HBase pszeudoelosztott módban történő telepítésének lépései láthatók.

1. lépés) Helyezze el a hbase-1.1.2-bin.tar.gz fájlt a /home/hduser könyvtárban.

2. lépés) Csomagold ki a következő parancs végrehajtásával: $tar -xvf hbase-1.1.2-bin.tar.gz. A parancs kicsomagolja a tartalmat, és létrehozza a hbase-1.1.2 fájlt a /home/hduser helyen.

3. lépés) Nyissa meg a hbase-env.sh fájlt az alábbiak szerint, említse meg a JAVA_HOME elérési utat és a régiókiszolgálók elérési útját a helyen, majd exportálja a parancsot az alábbiak szerint.

A hbase-env.sh szerkesztése JAVA_HOME és a Region Servers elérési úttal pszeudo-elosztott módhoz

4. lépés) Ebben a lépésben megnyitjuk a ~/.bashrc fájlt, és megadjuk a HBASE_HOME elérési utat, ahogy az az alábbi képernyőképen látható.

A HBASE_HOME elérési út beállítása a bashrc fájlban pszeudo-elosztott módhoz

5. lépés) Nyissa meg a hbase-site.xml fájlt, és említse meg az alábbi tulajdonságokat a fájlban (a kód az alábbi).

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

Az ál-elosztott tulajdonságokkal rendelkező hbase-site.xml fájl alább látható.

hbase-site.xml fájl pszeudo-elosztott HDFS és ZooKeeper tulajdonságokkal

A fennmaradó ZooKeeper konfiguráció az alábbiakban látható.

A hbase-site.xml ZooKeeper konfigurációjának folytatása pszeudo-elosztott módban

A fájl minden tulajdonságának meghatározott szerepe van:

  • A HBase gyökérkönyvtárának beállítása a hbase.rootdir tulajdonságban.
  • Elosztott beállítás esetén a hbase.cluster.distributed paramétert igaz értékre kell állítani.
  • A ZooKeeper quorum tulajdonságot itt kell beállítani.
  • A replikáció a dfs.replication tulajdonságban állítható be. Alapértelmezés szerint a replikáció értéke 1. Teljesen elosztott módban több adatcsomópont van jelen, így a replikáció mértékét növelheti, ha a dfs.replication tulajdonságban 1-nél nagyobb értéket ad meg.
  • A kliens portját meg kell említeni a hbase.zookeeper.property.clientPort tulajdonságban.
  • A ZooKeeper adatkönyvtárát a hbase.zookeeper.property.dataDir tulajdonságban lehet megemlíteni.

6. lépés) Először a Hadoop démonokat indítsa el, majd a HBase démonokat az alábbiak szerint. Először a ./start-all.sh parancs használatával kell elindítania a Hadoop démonokat az alábbiak szerint.

A start-all.sh parancs futtatása a Hadoop démonok elindításához

Ezután indítsa el a HBase démonokat a hbase-start.sh paranccsal, az alábbiak szerint.

A HBase démonok indítása a start-hbase.sh parancsfájllal pszeudo-elosztott módban

Most ellenőrizd a futó folyamatokat a jps paranccsal, az alábbiak szerint.

A jps parancs kimenete, amely felsorolja a futó Hadoop és HBase démonokat.

HBase teljesen elosztott módú telepítés

A teljesen elosztott mód kiterjeszti a pszeudo-elosztott beállítást egy valódi klaszterre.

  • Ez a beállítás Hadoop fürt módban működik, ahol több csomópont jelenik meg a fürtön és fut.
  • A telepítés ugyanaz, mint a pszeudo elosztott módban; az egyetlen különbség az, hogy több csomóponton fog megjelenni.
  • A hbase-site.xml és hbase-env.sh fájlokban említett konfigurációs fájlok megegyeznek a pszeudo módban említettekkel.

Teljesen elosztott módban győződjön meg arról, hogy a fürtön lévő Hadoop verzió megegyezik a HBase-hez csomagban található Hadoop kódtárakkal, hogy a démonok megfelelően kommunikáljanak.

HBase telepítési hibaelhárítás

1) Problémameghatározás: A fő szerver inicializálódik, de a régió szerverei nem.

A master és a regionális szerverek közötti kommunikáció az IP-címeiken keresztül történik. A master figyeli a futó vagy a 127.0.0.1 IP-címmel rendelkező regionális szervereket. A 127.0.0.1 IP-cím a helyi host, és a master szerver saját helyi hosztjára van feloldva.

Ok:

A regionális szerverek és a master szerver közötti kettős kommunikáció során a regionális szerver folyamatosan tájékoztatja a master szervert arról, hogy az IP-címe 127.0.0.1.

Megoldás:

  • Távolítsa el a „Master server name” csomópontot a hosts fájlban található helyi host bejegyzésből.
  • Gazdagép fájl helye: /etc/hosts.

Mit kell megváltoztatni:

Nyisd meg az /etc/hosts fájlt és menj erre a helyre.

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

Módosítsa a fenti konfigurációt az alábbiak szerint (távolítsa el a régiókiszolgáló nevét a fent kiemelt módon).

127.0.0.1    localhost.localdomainlocalhost
: : 1 localhost3.localdomain3 localdomain3

2) Problémameghatározás: Nem találtam az XYZ címemet a ZooKeeper kvórumszervereinek listájában.

Ok:

  • A ZooKeeper szerver nem tudott elindulni, és hibát dob, például .xyz a szerver nevében.
  • A HBase megpróbál elindítani egy ZooKeeper kiszolgálót egy gépen, de ugyanakkor a gép nem találja magát a hbase.zookeeper.quorum konfigurációban található kvórumkonfigurációban.

Megoldás:

  • Cserélje le a hosztnevet egy, a hibaüzenetben megjelenő hosztnévre.
  • Ha van DNS-kiszolgálód, a következő konfigurációkat állíthatod be a hbase-site.xml fájlban: hbase.zookeeper.dns.interface és hbase.zookeeper.dns.nameserver.

3) Problémameghatározás: Létrehoztam egy gyökérkönyvtárat a HBase számára a Hadoop DFS-en keresztül.

  • A Mester azt mondja, hogy le kell futtatnod a HBase migrációs szkriptet.
  • A futtatás után a HBase migrációs szkript azt válaszolja, hogy nincsenek fájlok a gyökérkönyvtárban.

Ok:

  • Létrehoztunk egy új könyvtárat a HBase számára a Hadoop elosztott fájlrendszer használatával.
  • A HBase itt két lehetőséget vár:

1) A gyökérkönyvtár nem létezik.

2) Egy korábbi HBase futó példány inicializálása megtörtént.

Megoldás:

  • Győződjön meg arról, hogy a HBase gyökérkönyvtára jelenleg nem létezik, vagy a HBase-példány egy korábbi futtatása során inicializálták.
  • A megoldás részeként kövesse az alábbi lépéseket.

1. lépés) A Hadoop dfs használatával törölje a HBase gyökérkönyvtárát.

2. lépés) A HBase létrehozza és inicializálja a könyvtárat.

4) Problémameghatározás: A ZooKeeper munkamenet lejárta miatti események

Ok:

  • A HMaster vagy HRegion szerverek kivételek dobásával leálltak.
  • Ha megvizsgálod a naplókat, megtalálhatod a ténylegesen keletkezett kivételeket.

A következő ábra a ZooKeeper lejárt eseménye miatt keletkezett kivételt mutatja. A kiemelt események a naplófájlban előfordult kivételek közül néhányat jelölnek.

Naplófájlok kódja az alábbiak szerint:

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

Megoldás:

  • Az alapértelmezett RAM-méret 1 GB. Hosszú ideig futó importálások esetén tartson fenn 1 GB-nál nagyobb RAM-kapacitást.
  • Növelje a ZooKeeper munkamenet-időkorlátját.
  • A ZooKeeper munkamenet-időtúllépésének növeléséhez módosítsa a következő tulajdonságot a hbase-site.xml fájlban, amely a hbase/conf mappa elérési útján található.
  • Az alapértelmezett munkamenet-időkorlát 60 másodperc. Az alábbiak szerint módosíthatja 120 másodpercre.
<property>
    <name> zookeeper.session.timeout </name>
    <value>1200000</value>
</property>
<property>
    <name> hbase.zookeeper.property.tickTime </name>
    <value>6000</value>
</property>

GYIK

A HBase-nek támogatottra van szüksége Java futásidejű JAVA_HOME beállítással. Az ál-elosztott és teljesen elosztott módokhoz is futó Hadoop HDFS klaszter. Az önálló módnak csak Java, mivel a helyi fájlrendszert használja, és a saját ZooKeeper-ét tartalmazza.

Nem önálló módban, amely a helyi fájlrendszeren, egyetlen JVM-en fut Hadoop démonok nélkül. Az ál-elosztott és a teljesen elosztott módok Hadoop-ot igényelnek, mivel az adatokat HDFS-ben tárolják, és annak NameNode és DataNode-jaitól függenek.

Szerkeszd a conf/hbase-env.sh fájlt, és add hozzá az export JAVA_HOME=/path/to/your/jdk sort, amely a JDK gyökérkönyvtárára mutat. A HBase ezt az értéket olvassa be induláskor. A JAVA_HOME fájlt exportálhatod a ~/.bashrc fájlba is, így a shell megtalálja Java világszerte.

Ez az útmutató a HBase 1.1.2-es verzióját mutatja be, de a jelenlegi stabil kiadások a HBase 2.5.x és 2.6.x vonalakban találhatók, a 3.0 pedig béta verzióban. Az újabb verziókhoz szükség van Java 8 vagy 11. A letöltés, a konfiguráció és az indítás lépései lényegében ugyanazok maradnak.

Futtassa a jps parancsot, és keresse meg a HMaster folyamatot, valamint a HRegionServer és a HQuorumPeer folyamatokat elosztott módban. Megnyithatja a HBase Master webes felhasználói felületét is, vagy futtathatja a status parancsot a hbase shell a fürt élő állapotának megerősítéséhez.

Alapértelmezés szerint a HBase Master a 16000-es porton figyel, webes felhasználói felülete a 16010-es címen található, és minden régiókiszolgáló a 16020-as portot használja, felhasználói felülete pedig a 16030-as címen található. A ZooKeeper a 2181-es kliensporton figyel, amelyet a hbase.zookeeper.property.clientPort paraméterrel lehet beállítani.

A mesterséges intelligencia asszisztensei és a gépi tanuláson alapuló naplóelemző eszközök átvizsgálják a HBase és a ZooKeeper naplókat, klaszterezik azokat, és feltárják az olyan hibák kiváltó okát, mint a lejárt munkamenet vagy a kvórumhibák. Javaslatokat tesznek a konfigurációs javításokra, bár egy mérnöknek minden egyes módosítást meg kell erősítenie az alkalmazása előtt.

Igen. GitHub másodpilóta hbase-site.xml kódrészleteket, hbase-env.sh bejegyzéseket és indító shell szkripteket készít egy rövid megjegyzésből. RevA futtatás előtt tekintse át a helyes tulajdonságnevekre, elérési utakra és portokra vonatkozó javaslatait, mert a létrehozott konfiguráció elavult alapértelmezett értékekre hivatkozhat.

Foglald össze ezt a bejegyzést a következőképpen: