Jak nainstalovat HIVE na Ubuntu (Příručka ke stažení a nastavení)

⚡ Chytré shrnutí

Instalace Apache Hive na Ubuntu jako tenká vrstva datového skladu nad již spuštěným clusterem Hadoop, takže nastavení je většinou otázkou rozbalení jednoho archivu a nasměrování tří proměnných prostředí do správných adresářů.

  • 🧱 Hadoop jako první: Každý démon Hadoop musí již být spuštěný, protože Hive ukládá data svých tabulek na HDFS a odesílá své úlohy do clusteru.
  • ⬇️ Zdroj ke stažení: Binární verze pocházejí ze zrcadlové stránky Apache a řada 3.x dosáhla konce své životnosti v říjnu 2024.
  • 📁 Dva konfigurační soubory: HIVE_HOME patří do bashrc a HADOOP_HOME patří do hive-config.sh v adresáři Hive bin.
  • 💾 Složky HDFS: Adresáře warehouse a tmp musí existovat na HDFS s oprávněním pro skupinový zápis před vytvořením první tabulky.
  • 🧩 Krok schématu: Nástroj schematool vytváří tabulky metastore a Hive 3.x a novější odmítají spustit proti neinicializovanému schématu.
  • 🔨 Rychlé ověření: Příkaz create následovaný příkazem describe dokazuje, že shell, metastore a HDFS jsou správně propojeny.

Jak nainstalovat Hive na Ubuntu

Před instalací Apache Hive potřebujeme vyhrazený Hadoop instalace, spuštění a spuštění se všemi démony Hadoop.

Pro instalaci Hadoopu zkontrolujte toto https://trials.autocruitment.com.

Jakmile všechny démony Hadoop fungují správně, stačí spustit instalaci části Hive. Níže uvedený návod prochází čtyřmi fázemi:

Proces instalace Apache Hive

  1. Předpoklady a kompatibilita verzí
  2. Instalace Hive
  3. Inicializace schématu Metastore
  4. Příkazy shellu úlu

Předpoklady pro instalaci Apache Hive na Ubuntu

Hive není samostatná databáze. Je to vrstva dotazů, která převádí HiveQL do úloh běžících na existujícím clusteru, takže téměř každá neúspěšná instalace tracvrací se k chybějícímu předpokladu, nikoli k samotnému Hive. Před stažením čehokoli ověřte následující:

  • Podporovaný JDK. Hive 4.1.x běží na JDK 17, zatímco Hive 4.2.x zvyšuje minimum na JDK 21. Zkontrolujte verzi pomocí java -version a ujistěte se, že je exportován soubor JAVA_HOME.
  • Běžící cluster Hadoop. Jak NameNode, tak DataNode musí být aktivní. Spusťte. jps a ověřte, že se v seznamu zobrazují NameNode, DataNode, ResourceManager a NodeManager.
  • Přístup pro zápis do HDFS. Účet, který spouští Hive, potřebuje oprávnění k vytváření adresářů v rámci HDFS.
  • Odpovídající verze. Hive 4.2.0 je postaven na Hadoopu 3.4.1 a Tez 0.10.5. Řada Hive 3.x dosáhla konce své životnosti v říjnu 2024, takže nová instalace by se měla zaměřit na řadu 4.x.
  • Bezplatné zdroje. Učící se nastavení s jedním uzlem je pohodlné s přibližně 4 GB RAM a 20 GB volného místa na disku.

Po zaškrtnutí těchto políček proběhne níže uvedená sekvence stahování a rozbalování bez překvapení.

Jak nainstalovat Hive na Ubuntu

Níže je uveden postup krok za krokem, jak nainstalovat Hive Ubuntu:

Krok 1) Stáhněte a nainstalujte Hive na Ubuntu

Chcete-li si stáhnout stabilní instalaci Hive, podívejte se na Apache URL jak je uvedeno níže.

https://www.apache.org/dyn/closer.cgi/hive/ — jít do URL a vyberte odkaz ke stažení zrcadla Apache. Stránka ke stažení Apache Hive uvádí, která vydání jsou párována s jakou verzí Hadoopu.

Otevře se zrcadlová stránka se seznamem dostupných adresářů pro vydání Hive, jak je uvedeno níže.

Zrcadlová stránka Apache se seznamem dostupných adresářů pro vydání Apache Hive

Vyberte nejnovější verzi nastavení Hive. (V mém současném případě je to Hive – 3.1.2.) Složka release obsahuje vedle sebe binární a zdrojové archivy.

Složka vydání Hive zobrazující archivy binárních a zdrojových distribučních souborů

Klikněte na soubor bin a stahování se spustí.

Výzva prohlížeče ke stažení distribučního souboru apache-hive bin tar.gz

Krok 2) Příkladtracsoubor tar

Přejděte do umístění staženého souboru tar a poté jej stáhněte.tracSpusťte soubor tar pomocí následujícího příkazu k instalaci Hive na Ubuntu ve vašem systému.

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

Terminál odešle každý soubor při jeho rozbalení do nového adresáře Hive.

Výstup terminálu při spuštění archivu Hive tartracTed na Ubuntu

Krok 3) Umístěte různé konfigurační vlastnosti do Apache Hive

V tomto kroku uděláme dvě věci:

  1. Umístění domovské cesty Hive do souboru bashrc
  2. Umístění domovské cesty Hadoopu do souboru hive-config.sh

1) Uveďte cestu k Hive v ~/.bashrc

Otevřete soubor pro úpravy pomocí níže uvedeného příkazu.

Příkaz, který otevírá soubor bashrc pro úpravu proměnných prostředí Hive

  • Otevřete soubor bashrc, jak je znázorněno na výše uvedeném snímku obrazovky.
  • V souboru bashrc uveďte cestu k domovskému složce Hive, tj. cestu HIVE_HOME, a exportujte ji, jak je znázorněno níže.

Na konec souboru bashrc přidány exportní řádky HIVE_HOME a PATH

Code umístit do bashrc:

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

Znovu načtěte soubor pomocí zdroj ~ / .bashrc takže nová cesta se projeví v aktuální terminálové relaci.

2) Export cesty Hadoop v souboru hive-config.sh

Pro komunikaci s ekosystémem Hadoop definujeme domovskou cestu Hadoopu v konfiguračním souboru Hive. Otevřete soubor hive-config.sh, jak je znázorněno níže.

Příkaz používaný k otevření souboru hive-config.sh z adresáře Hive bin

V souboru hive-config.sh uveďte cestu HADOOP_HOME, jak je uvedeno níže.

Cesta HADOOP_HOME deklarovaná v souboru hive-config.sh

Krok 4) Vytvořte adresáře Hive v Hadoopu

Pro komunikaci s Hadoopem musíme v Hadoopu vytvořit adresáře, jak je znázorněno níže. Hive zapisuje data spravovaných tabulek do adresáře warehouse a výstup pro staging do adresáře tmp.

Příkazy HDFS, které vytvářejí adresáře Hive tmp a warehouse

Udělení root oprávnění k vytváření složek Hive v Hadoopu. Pokud se nezobrazí žádná chybová zpráva, znamená to, že Hadoop úspěšně udělil oprávnění ke složkám Hive.

Terminál zobrazující skupinová oprávnění k zápisu udělená složkám Hive na HDFS

Krok 5) Vstupte do shellu Hive

Do shellu Hive se dostanete zadáním '. /úl' příkaz, jak je znázorněno níže.

Otevření příkazového řádku shellu Hive z adresáře Hive bin dne Ubuntu

Jak inicializovat schéma Hive Metastore

Hive uchovává každý název tabulky, název sloupce a datový typ v relačním úložišti nazývaném metastore. Při nové instalaci je toto úložiště prázdné a od verze Hive 3.x se shell odmítá spustit, dokud neexistují tabulky schématu. Vytvoří je utilita schematool, která je součástí adresáře bin Hive.

Pro výukové prostředí s jedním uživatelem postačuje dodávaná databáze Derby:

$HIVE_HOME/bin/schematool -dbType derby -initSchema

Příkaz vypíše verzi schématu, kterou vytvořil, a končí na schemaTool dokončenoDerby zapisuje své soubory do adresáře, ze kterého byl příkaz spuštěn, takže Hive vždy poté spusťte ze stejného adresáře.

Derby přijímá vždy pouze jednu aktivní relaci, což ho činí nevhodným pro sdílený cluster. Umístěte podregistr na MySQL místo toho přidáním vlastností připojení do souboru hive-site.xml a opětovným spuštěním nástroje s jiným typem databáze:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

Úplný seznam vlastností a umístění ovladačů je uveden v průvodci, jak na to. nakonfigurujte metaúložiště Hive pomocí MySQLZa zmínku stojí ještě dvě vlajky:

  • -info hlásí verzi schématu aktuálně zaznamenanou v metastore, aniž by cokoli změnila.
  • -upgradeSchema migruje existující metastore do verze schématu nově nainstalované verze Hive.

S nastaveným schématem je shell připraven přijmout svůj první příkaz HiveQL.

Příkazy shellu úlu

Zde vytvoříme ukázkovou tabulku pomocí příkazu „create“ v shellu Hive s názvy sloupců.

Ukázkový kód pro vytvoření databáze v Hive. Snímek obrazovky níže ukazuje postupný výstup příkazu create a příkazu describe.

Výstup shellu Hive pro příkazy create table a describe product

Z výše uvedeného snímku obrazovky můžeme pozorovat následující:

1) Vytvoření vzorové tabulky s názvy sloupců v Hive

  • Zde je název tabulky „produkt“ se třemi názvy sloupců produkt, jméno a cenu
  • Názvy tří sloupců jsou označeny příslušným datovým typem.
  • Všechna pole jsou ukončena čárkou ', '

2) Zobrazení informací o tabulce Hive

  • Pomocí příkazu „describe“ můžeme zobrazit informace o tabulkách v Hive.
  • Zde se zobrazují názvy sloupců s příslušnými datovými typy, které jsou přítomny ve schématu tabulky.
  • Na konci se zobrazí čas potřebný k provedení tohoto příkazu a počet načtených řádků.

Ukázkový kód pro vytvoření databáze v Úl (pro vlastní kontrolu)

1) Vytvořte tabulku product(product int, pname string, price float)

Row format delimited
Fields terminated by ',';

2) popsat produkt;

Jakmile tabulka odpoví na požadavek popisu, propojí se shell, metastore a HDFS. Odtud stejná relace přijímá širší vytvořit, změnit a odstranit tabulku prohlášení a seřadit podle, seskupit podle a shlukovat podle dotazy.

Časté chyby při instalaci Hive Ubuntu a jak je opravit

Většina chyb při prvním spuštění pochází z prostředí kolem Hive, nikoli ze samotného Hive. Níže uvedená tabulka mapuje zprávy, které se nejčastěji zobrazují, s jejich příčinou a příkazem, který je vymaže.

Zpráva na obrazovce Pravděpodobná příčina Opravit
úl: příkaz nenalezen HIVE_HOME/bin není na cestě PATH. Znovu zkontrolujte exportní řádky v bashrc a poté spusťte zdroj ~ / .bashrc
Informace o verzi nebyly v metastore nalezeny. Schéma metaúložiště nebylo nikdy inicializováno. Spusťte schematool s parametrem -initSchema pro zvolený typ databáze.
Volání na localhost:9000 selhalo kvůli výjimce připojení HDFS neběží Spusťte démony Hadoop a ověřte, zda se v nich zobrazují NameNode a DataNode. jps
Uzel názvu je v nouzovém režimu NameNode je stále v nouzovém režimu při spuštění. Opusťte nouzový režim pomocí hdfs dfsadmin - opustit nouzový režim
Oprávnění odepřeno: access=WRITE na /user/hive/warehouse Adresář skladu postrádá skupinová oprávnění k zápisu. Znovu podejte žádost hdfs dfs -chmod g+w v adresářích warehouse a tmp
NoSuchMethodError u Preconditions.checkArgument Hive a Hadoop dodávají různé verze Guava JAR Smažte starší JAR soubor Guava v adresáři Hive lib a zkopírujte na jeho místo ten z Hadoopu.

Rychlý způsob, jak oddělit problém Hive od problému Hadoop, je spustit jps nejprve. Pokud démony chybí, je chyba v clusteru; pokud jsou přítomny a shell stále selhává, je chyba v konfiguraci Hive nebo ve schématu metastore. Jakmile je shell stabilní, Operátory HiveQL a vestavěné funkce reference je přirozenou další zastávkou.

Nejčastější dotazy

Spravovaná tabulka umožňuje Hive vlastnit jak metadata, tak soubory, takže je lze zrušit.ping smaže data v adresáři datového skladu. Externí tabulka zaznamenává pouze metadata a odstraňujeping ponechává základní soubory nedotčené.

Hive běží kdekoli, kde běží JVM a Hadoop, ale skripty shellu předpokládají rozložení Unixu. Windows většina týmů používá WSL2 nebo obraz Dockeru; macOS Stejný archiv tar funguje i po exportu JAVA_HOME a HADOOP_HOME.

Beeline je JDBC klient, který se připojuje k HiveServeru2, místo aby načítal Hive uvnitř shellu. Podporuje souběžné uživatele a ověřování a starší rozhraní Hive CLI je zastaralé, takže nové instalace by měly být standardizovány na Beeline.

Moderní cloudové enginy využívají historické statistiky dotazů k vytváření modelů naučených nákladů, které předpovídají velikosti skenů, prořezávání oddílů a pořadí spojení. Dodavatelé cloudových služeb poskytují stejné signály jako automatická doporučení pro komprimaci souborů, rozvržení oddílů a dimenzování kontejnerů.

Copilot rychle vytváří návrhy exportů bashrc, bloků hive-site.xml a volání schematool a agenti je mohou spustit v sandboxu. S výstupem zacházejte jako s prvním návrhem: čísla verzí, porty a cesty k adresářům je stále třeba ověřit ve vašem vlastním clusteru.

Zhruba 4 GB RAM a 20 GB volného místa na disku je pro učení pohodlných, protože Hive je sám o sobě tenký klient. Produkční uzly se velikostně přizpůsobují clusteru Hadoop a databázi metastore, nikoliv Hive.

Rozbalte novou verzi vedle staré, přepište HIVE_HOME a poté spusťte schematool s -upgradeSchema, aby se metastore shodovalo. Odstranění jednoduše smaže adresář Hive a odstraní všechny položky.ping exportní řádky z bashrc; data z HDFS skladu přetrvávají.

Ne. MapReduce je jako spouštěcí engine Hive zastaralý a Hive 4.x běží ve výchozím nastavení na Apache Tez. MapReduce Model je stále užitečný pro pochopení, protože Tez se řídí stejným modelem řízené práce.

Shrňte tento příspěvek takto: