Hogyan telepítsük a HIVE-t Ubuntu (Letöltési és beállítási útmutató)

⚡ Okos összefoglaló

Az Apache Hive telepítése a következőre: Ubuntu egy vékony adattárház rétegként egy már futó Hadoop klaszter felett, így a beállítás többnyire egy archívum kicsomagolásából és három környezeti változó megfelelő könyvtárakra irányításából áll.

  • 🧱 Hadoop először: Minden Hadoop démonnak már futnia kell, mivel a Hive a táblaadatait HDFS-en tárolja, és a feladatait a fürtnek küldi el.
  • ⬇️ Letöltési forrás: A bináris kiadások az Apache tüköroldaláról származnak, és a 3.x vonal 2024 októberében elérte az élettartama végét.
  • 📁 Két konfigurációs fájl: A HIVE_HOME a bashrc könyvtárban található, a HADOOP_HOME pedig a hive-config.sh fájlban, a Hive bin könyvtárban.
  • 💾 HDFS mappák: A warehouse és a tmp könyvtáraknak létezniük kell a HDFS-en csoportos írási engedéllyel az első tábla létrehozása előtt.
  • 🧩 Séma lépés: A schematool segédprogram létrehozza a metaadattár táblákat, és a Hive 3.x és újabb verziói nem hajlandók elindulni egy inicializálatlan sémával.
  • 🔨 Gyorsan ellenőrizd: Egy create utasítás, amelyet a describe követ, bizonyítja, hogy a shell, a metaadattár és a HDFS megfelelően van összekapcsolva.

Hogyan telepítsük a Hive-ot? Ubuntu

Az Apache Hive telepítése előtt szükségünk van egy dedikált Hadoop telepítés, és fut az összes Hadoop démonnal.

A Hadoop telepítéséhez tekintse meg ezt link.

Miután az összes Hadoop démon megfelelően működik, kezdje el a Hive rész telepítését. Az alábbi útmutató négy szakaszból áll:

Apache Hive telepítési folyamat

  1. Előfeltételek és verziókompatibilitás
  2. Hive telepítése
  3. Metastore séma inicializálása
  4. Hive shell parancsok

Az Apache Hive telepítésének előfeltételei Ubuntu

A Hive nem egy önálló adatbázis. Ez egy lekérdezési réteg, amely a HiveQL-t egy meglévő klaszteren futó feladatokká alakítja, így szinte minden sikertelen telepítés tracegy hiányzó előfeltételre tér vissza, nem pedig magára a Hive-ra. A letöltés előtt győződjön meg a következőkről:

  • Egy támogatott JDK. A Hive 4.1.x JDK 17-en fut, míg a Hive 4.2.x a minimális verziót JDK 21-re emeli. Ellenőrizze a verziót a következővel: java -verzió és győződjön meg róla, hogy a JAVA_HOME exportálva van.
  • Egy futó Hadoop klaszter. Mind a NameNode, mind a DataNode-nak élőnek kell lennie. Futtatás JPS és győződjön meg arról, hogy a NameNode, a DataNode, a ResourceManager és a NodeManager is megjelenik a listában.
  • Írási hozzáférés a HDFS-hez. A Hive-ot indító fióknak engedélyre van szüksége könyvtárak létrehozásához a következő alatt: HDFS.
  • Egyező verziók. A Hive 4.2.0 a Hadoop 3.4.1 és a Tez 0.10.5 köré épül. A Hive 3.x termékcsalád 2024 októberében elérte az élettartama végét, így egy friss telepítésnek a 4.x termékcsaládot kell célba vennie.
  • Ingyenes források. Egy egycsomópontos tanulási beállítás kényelmesen használható nagyjából 4 GB RAM-mal és 20 GB szabad lemezterülettel.

Ha ezeket a négyzeteket bejelölöd, az alábbi letöltési és kicsomagolási folyamat meglepetések nélkül lefut.

A Hive telepítése Ubuntu

Az alábbiakban egy lépésről lépésre bemutatjuk a Hive in telepítésének folyamatát Ubuntu:

1. lépés) Töltse le és telepítse a Hive-t Ubuntu

A Hive stabil telepítésének letöltéséhez lásd a Apache URL ahogy az alábbiakban említjük.

https://www.apache.org/dyn/closer.cgi/hive/ – menj a URL és válaszd ki az Apache tükör letöltési linkjét. Apache Hive letöltési oldal felsorolja, hogy melyik kiadás melyik Hadoop verzióval párosul.

Megnyílik a tüköroldal, amelyen az elérhető Hive kiadási könyvtárak listája látható, az alábbiak szerint.

Az Apache tüköroldala, amely felsorolja az elérhető Apache Hive kiadási könyvtárakat

Válaszd ki a Hive legújabb verzióját. (Jelenlegi esetemben ez a hive – 3.1.2.) A kiadási mappa egymás mellett listázza a bináris és a forrásfájl archívumát.

A Hive kiadási mappája, amelyen látható a bináris és a forrás terjesztési archívuma

Kattintson a bin fájlra, és a letöltés megkezdődik.

Böngésző letöltési parancsa az apache-hive bin tar.gz disztribúciós fájlhoz

2. lépés) Példáultraca tar fájl

Menj a letöltött tar fájl helyére, majd az ex fájlba.traca tar fájlt a következő paranccsal telepítheti a Hive-ot a következőre: Ubuntu a rendszereden.

tar -xvf  apache-hive-3.1.2-bin.tar.gz

A terminál minden egyes fájlt kicsomagoláskor visszajelez az új Hive könyvtárba.

Terminálkimenet, miközben a Hive tar archívum folyamatban vantracTed on Ubuntu

3. lépés: Helyezzen el különböző konfigurációs tulajdonságokat az Apache Hive-ba

Ebben a lépésben két dolgot fogunk tenni:

  1. A Hive kezdőlapjának elhelyezése a bashrc fájlban
  2. A Hadoop kezdőútvonalának elhelyezése a hive-config.sh fájlban

1) Említsd meg a Hive elérési útját a ~/.bashrc fájlban

Nyisd meg a fájlt szerkesztésre az alábbi paranccsal.

Parancs, amely megnyitja a bashrc fájlt a Hive környezeti változók szerkesztéséhez

  • Nyisd meg a bashrc fájlt a fenti képernyőképen látható módon
  • Említsd meg a Hive kezdőkönyvtárának elérési útját, azaz a HIVE_HOME elérési utat a bashrc fájlban, és exportáld az alábbiak szerint.

HIVE_HOME és PATH export sorok hozzáadva a bashrc fájl végéhez

Code bashrc-be helyezendő:

export HIVE_HOME="/home/guru99hive/apache-hive-1.2.0-bin"
export PATH=$PATH:$HIVE_HOME/bin

Töltsd újra a fájlt a következővel: forrás ~ / .bashrc így az új elérési út az aktuális terminálmunkamenetben lép életbe.

2) A Hadoop elérési út exportálása a hive-config.sh fájlba

A Hadoop ökoszisztémával való kommunikációhoz definiáljuk a Hadoop kezdőkönyvtárát a Hive konfigurációs fájlban. Nyissuk meg a hive-config.sh fájlt az alábbiak szerint.

Parancs, amellyel megnyitható a hive-config.sh a Hive bin könyvtárból

Említse meg a HADOOP_HOME elérési utat a hive-config.sh fájlban az alábbiak szerint.

A HADOOP_HOME elérési út a hive-config.sh fájlban deklarálva van

4. lépés) Hozzon létre Hive-könyvtárakat a Hadoopban

A Hadooppal való kommunikációhoz létre kell hoznunk a könyvtárakat a Hadoopban, ahogy az alább látható. A Hive a felügyelt tábla adatait a tárház könyvtárába írja, a kimenetet pedig a tmp könyvtárba.

HDFS parancsok, amelyek létrehozzák a Hive ideiglenes és raktárkönyvtárait

Root jogosultságok megadása Hive mappák létrehozásához a Hadoopban. Ha nem dob hibaüzenetet, az azt jelenti, hogy a Hadoop sikeresen engedélyeket adott a Hive mappákhoz.

A terminál, amely a HDFS-en található Hive-mappákhoz adott csoportos írási engedélyeket mutatja

5. lépés) Lépjen be a Hive shellbe

Lépj be a Hive shellbe a következőbe: '. /kaptár' parancsot, ahogy az alább látható.

A Hive shell promptja megnyílt a Hive bin könyvtárból ekkor: Ubuntu

A Hive Metastore séma inicializálása

A Hive minden táblanevet, oszlopnevet és adattípust egy relációs tárolóban, úgynevezett metatárolóban tárol. Friss telepítéskor ez a tároló üres, és a Hive 3.x verziójától kezdve a shell nem hajlandó elindulni, amíg a sématáblák létre nem jönnek. A Hive bin könyvtárában található schematool segédprogram hozza létre őket.

Egyfelhasználós tanulási beállításhoz elegendő a mellékelt Derby adatbázis:

$HIVE_HOME/bin/schematool -dbType derby -initSchema

A parancs kinyomtatja a létrehozott séma verzióját, és a következővel fejeződik be: sémaTool befejezveA Derby abba a könyvtárba írja a fájljait, amelyből a parancsot futtatták, ezért a Hive-ot mindig ugyanabból a könyvtárból indítsa el utána.

A Derby egyszerre csak egy aktív munkamenetet fogad el, ami alkalmatlanná teszi megosztott fürtökhöz. Point Hive itt: MySQL ehelyett a kapcsolat tulajdonságait hozzáadjuk a hive-site.xml fájlhoz, és újra futtatjuk az eszközt egy másik adatbázistípussal:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

A teljes tulajdonságlistát és a meghajtó elhelyezését az útmutató tartalmazza. konfigurálja a Hive metaadattárat a következővel: MySQLMég két zászlót érdemes megjegyezni:

  • -info a metaadattárban jelenleg rögzített sémaverziót jelenti változtatás nélkül.
  • -frissítési séma Egy meglévő metaadattárat migrál az újonnan telepített Hive-kiadás sémaverziójára.

Miután a séma elkészült, a shell készen áll az első HiveQL utasítás elfogadására.

Hive shell parancsok

Itt létrehozunk egy minta táblát a Hive shell „create” parancsával, oszlopnevekkel.

Mintakód adatbázis létrehozásához a Hive-ban. Az alábbi képernyőkép a create utasítást és a describe kimenetét mutatja egymás után.

Hive shell kimenet a létrehozási táblához és a termék leírására szolgáló parancsokhoz

A fenti képernyőképből a következőket figyelhetjük meg:

1) Mintatábla létrehozása oszlopnevekkel a Hive-ban

  • Itt a táblázat neve „termék”, három oszlopnévvel termék, pname és ár
  • A három oszlopnevet a megfelelő adattípusuk jelöli.
  • Minden mezőt vessző zár le: ', '

2) A Hive tábla információinak megjelenítése

  • A „describe” parancs használatával megtekinthetjük a Hive-ban található táblainformációkat.
  • Itt az oszlopneveket jeleníti meg a táblázat sémájában található megfelelő adattípusokkal együtt.
  • A végén megjelenik a parancs végrehajtásához szükséges idő és a beolvasott sorok száma.

Mintakód adatbázis létrehozásához Kaptár (önellenőrzés céljából)

1) Hozz létre egy táblát: product(product int, pname string, price float)

Row format delimited
Fields terminated by ',';

2) írja le a terméket;

Miután a tábla válaszol a leírásra, a shell, a metaadattár és a HDFS összekapcsolódik. Innentől kezdve ugyanaz a munkamenet fogadja a szélesebb körű tábla létrehozása, módosítása és törlése nyilatkozatok és a rendezés, csoportosítás és klaszterezés lekérdezéseket.

Gyakori Hive telepítési hibák a következőn: Ubuntu és Hogyan javítsuk ki őket

A legtöbb első futtatású hiba a Hive körüli környezetből ered, nem pedig magából a Hive-ból. Az alábbi táblázat a leggyakrabban megjelenő üzeneteket az okukhoz és a törlő parancshoz rendeli.

Üzenet a képernyőn Valószínű oka Rögzít
kaptár: parancs nem található A HIVE_HOME/bin nem szerepel a PATH-on Ellenőrizd újra a bashrc export sorait, majd futtasd a következőt: forrás ~ / .bashrc
Verzióinformáció nem található a metaadattárban A metaadattár sémáját soha nem inicializálták Futtassa a schematool parancsot a kiválasztott adatbázistípushoz a -initSchema kapcsolóval.
A localhost:9000 hívása sikertelen volt a csatlakozási kivétel miatt A HDFS nem fut Indítsa el a Hadoop démonokat, és ellenőrizze, hogy a NameNode és a DataNode megjelennek-e. JPS
A névcsomópont biztonságos módban van A NameNode továbbra is indításkor biztonságos módban van. Kilépés a biztonságos módból a következővel: hdfs dfsadmin -safemode kilépés
Engedély megtagadva: access=WRITE a /user/hive/warehouse fájlban A raktárkönyvtárnak nincs csoportos írási jogosultsága. Jelentkezzen újra hdfs dfs -chmod g+w a raktár és az ideiglenes tárolás könyvtárakban
NoSuchMethodError a Preconditions.checkArgument függvényben A Hive és a Hadoop különböző Guava üvegedény-verziókat szállít Töröld a régebbi Guava jar fájlt a Hive lib könyvtárból, és másold be a Hadoop fájlt a helyére.

Egy gyors módja annak, hogy elkülönítsük a Hive-problémát a Hadoop-problémától, a következő futtatása: JPS először. Ha a démonok hiányoznak, a klaszter a hibás; ha jelen vannak, és a shell továbbra is meghibásodik, a hiba a Hive konfigurációjában vagy a metaadattár sémájában van. Miután a shell stabillá vált, a HiveQL operátorok és beépített függvények a referencia a természetes következő megálló.

GYIK

Egy felügyelt tábla lehetővé teszi, hogy a Hive birtokolja mind a metaadatokat, mind a fájlokat, tehát dobja el aping törli az adatokat a raktár könyvtárából. Egy külső tábla csak a metaadatokat rögzíti, és elvetiping az alapul szolgáló fájlokat érintetlenül hagyja.

A Hive bárhol fut, ahol egy JVM és egy Hadoop is fut, de a shell szkriptek Unix elrendezést feltételeznek. Windows a legtöbb csapat WSL2-t vagy Docker rendszerképet használ; macOS Ugyanaz a tar archívum működik, ha a JAVA_HOME és a HADOOP_HOME fájlokat exportáljuk.

A Beeline egy JDBC kliens, amely a HiveServer2-höz csatlakozik, ahelyett, hogy a Hive-ot a shell folyamaton belül töltené be. Támogatja az egyidejű felhasználókat és a hitelesítést, és a régebbi Hive CLI elavult, így az új telepítéseknek a Beeline-on kell egységesülniük.

A modern motorok a korábbi lekérdezési statisztikákat betáplálják a tanult költségmodellekbe, amelyek megjósolják a szkennelési méreteket, a partíciók metszését és az illesztések sorrendjét. A felhőszolgáltatók ugyanazokat a jeleket teszik közzé automatikus ajánlásokként a fájlok tömörítésére, a partíciók elrendezésére és a konténerméretezésre vonatkozóan.

A Copilot gyorsan elkészíti a bashrc exportok, a hive-site.xml blokkok és a schematool meghívások vázlatait, az ügynöki futtatók pedig egy sandboxban futtathatják őket. A kimenetet első vázlatként kell kezelni: a verziószámokat, portokat és könyvtárelérési utakat továbbra is ellenőrizni kell a saját fürtöddel szemben.

Nagyjából 4 GB RAM és 20 GB szabad lemezterület kényelmes a tanuláshoz, mivel maga a Hive egy vékony kliens. Az éles csomópontok mérete a Hadoop-klaszter és a metaadattár adatbázis köré épül, nem pedig a Hive köré.

Csomagold ki az új kiadást a régi mellé, irányítsd át a HIVE_HOME-ot, majd futtasd a schematool-t a -upgradeSchema kapcsolóval, hogy a metaadattár megegyezzen. Az eltávolítás egyszerűen a Hive könyvtár törlését és a metaadattár eltávolítását jelenti.ping a bashrc export sorai; a HDFS raktár adatai fennmaradtak.

Nem. A MapReduce elavult Hive végrehajtó motorként, és a Hive 4.x alapértelmezés szerint Apache Tez-en fut. MapReduce A modellt továbbra is érdemes megérteni, mivel a Tez ugyanazt az irányított munkamodellt követi.

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