Hive je široko používaný nástroj na analýzu veľkých dát v podnikaní a je to fantastické miesto, kde začať, ak ste v oblasti veľkých dát nováčikom. Táto lekcia Apache Hive prechádza základmi Apache Hive, prečo je úľ potrebný, jeho funkciami a všetkým ostatným, čo by ste mali vedieť.
Poďme najprv pochopiť rámec Hadoop, na ktorom je postavený Apache Hive.
Apache Hadoop
Apache Hadoop je bezplatná a open source platforma na ukladanie a spracovanie veľkých súborov údajov s veľkosťou od gigabajtov po petabajty. Hadoop umožňuje zoskupovanie mnohých počítačov na paralelnú analýzu obrovských súborov údajov, namiesto toho, aby vyžadoval jeden veľký počítač na ukladanie a analýzu údajov.
MapReduce a Hadoop Distributed File System sú dve komponenty:
- MapReduce – MapReduce je technika paralelného programovania na prácu s obrovskými objemami organizovaných, pološtruktúrovaných a neštruktúrovaných údajov o komoditných hardvérových klastroch.
- HDFS – HDFS (Hadoop Distributed File System) je komponent rámca Hadoop, ktorý ukladá a spracováva údaje. Je to súborový systém odolný voči chybám, ktorý beží na štandardnom hardvéri
Na pomoc modulom Hadoop sa používajú rôzne podprojekty (nástroje) v ekosystéme Hadoop, vrátane Sqoop, Pig a Hive.
- Úľ – Hive je rámec na písanie skriptov v štýle SQL, ktoré vykonávajú výpočty MapReduce.
- Prasa – Pig je procedurálny programovací jazyk, ktorý možno použiť na vytvorenie skriptu pre procesy MapReduce.
- Sqoop – Sqoop je nástroj na import a export údajov medzi HDFS a RDBMS.
Čo je Úľ Apache?
Apache Hive je open source dátový sklad program na čítanie, zápis a správu obrovských súborov údajov uložených priamo v systéme Apache Hadoop Distributed File System (HDFS) alebo iných systémoch na ukladanie údajov, ako je Apache HBase.
Vývojári SQL môžu použiť Hive na vytváranie príkazov Hive Query Language (HQL) pre dátové dopyty a analýzy, ktoré sú porovnateľné s bežnými príkazmi SQL. Bol vytvorený, aby zjednodušil programovanie MapReduce odstránením potreby učiť sa a písať dlhý kód Java. Namiesto toho môžete písať svoje otázky v HQL a Hive vytvorí mapu a zredukuje funkcie za vás.
Rozhranie Apache Hive podobné SQL sa stalo zlatým štandardom na vykonávanie ad-hoc vyhľadávaní, sumarizáciu a analýzu údajov Hadoop. Pri zahrnutí do cloudu výpočtové siete, toto riešenie je obzvlášť nákladovo efektívne a škálovateľné, a preto mnohé firmy vrátane Netflix a Amazon pokračujú vo vývoji a vylepšovaní Apache Hive.
História
Počas svojho pôsobenia na Facebooku Joydeep Sen Sarma a Ashish Thusoo spolu vytvorili Apache Hive. Obaja uznali, že na to, aby z Hadoopu vyťažili maximum, museli vytvoriť pomerne komplikované úlohy Java Map-Reduce. Uvedomili si, že nebudú schopní vzdelávať svoje rýchlo rastúce inžinierske a analytické tímy v zručnostiach, ktoré by potrebovali na využitie Hadoopu v celej spoločnosti. Inžinieri a analytici často používali SQL ako používateľské rozhranie.
Zatiaľ čo SQL mohol splniť väčšinu analytických potrieb, vývojári tiež zamýšľali začleniť programovateľnosť Hadoop. Apache Hive vznikol z týchto dvoch cieľov: deklaratívny jazyk založený na SQL, ktorý tiež umožnil vývojárom priniesť svoje vlastné skripty a programy, keď SQL nestačilo.
Bol tiež vyvinutý tak, aby uchovával centralizované metadáta (založené na Hadoop) o všetkých súboroch údajov v spoločnosti, aby sa uľahčilo vytváranie organizácií založených na údajoch.
Ako Apache Hive funguje?
Stručne povedané, Apache Hive konvertuje vstupný program napísaný v jazyku HiveQL (podobnom SQL) do jednej alebo viacerých úloh Java MapReduce, Tez alebo Spark. (Všetky tieto spúšťacie nástroje sú kompatibilné s Hadoop YARN.) Potom Apache Hive usporiada údaje do tabuliek pre Hadoop Distributed File System HDFS) a vykoná úlohy na klastri, aby získal odpoveď.
dátum
Tabuľky Apache Hive sú usporiadané rovnakým spôsobom ako tabuľky v relačnej databáze s veľkosťou dátových jednotiek od väčších po menšie. Databázy sú tvorené tabuľkami, ktoré sú rozdelené do divízií, ktoré sa ďalej delia na vedrá. HiveQL (Hive Query Language) sa používa na prístup k údajom, ktoré je možné meniť alebo pridávať. Údaje tabuľky sú serializované v rámci každej databázy a každá tabuľka má svoj vlastný adresár HDFS.
architektúra
Teraz si povieme o najdôležitejšom aspekte architektúry Hive. Komponenty Apache Hive sú nasledovné:
Metastore — Sleduje informácie o každej tabuľke, ako je jej štruktúra a umiestnenie. Metadáta oddielu sú tiež zahrnuté v Hive. To umožňuje vodičovi sledovať priebeh rôznych súborov údajov rozmiestnených v klastri. Údaje sú uložené v bežnom formáte RDBMS. Metadáta úľa sú pre vodiča mimoriadne dôležité, aby mohol sledovať údaje. Záložný server pravidelne duplikuje údaje, aby ich bolo možné v prípade straty údajov obnoviť.
Vodič – Príkazy HiveQL prijíma ovládač, ktorý funguje ako ovládač. Vytvorením relácií ovládač iniciuje vykonanie príkazu. Sleduje životnosť a pokrok manažéra. Počas vykonávania príkazu HiveQL ovládač uloží požadované metadáta. Slúži tiež ako bod zhromažďovania údajov alebo výsledkov dotazu po procese Reduce.
prekladač – Vykoná kompiláciu dotazov HiveQL. Dotaz sa teraz skonvertuje na plán vykonávania. Úlohy sú uvedené v pláne. Zahŕňa tiež kroky, ktoré musí MapReduce vykonať, aby získal výsledok preložený dotazom. Dotaz je konvertovaný na abstraktný syntaxový strom kompilátorom Hive (AST). Konvertuje AST na riadený acyklický graf po kontrole kompatibility a chýb v čase kompilácie (DAG).
Optimizer – Optimalizuje DAG vykonávaním rôznych zmien v pláne vykonávania. Kombinuje transformácie pre vyššiu efektivitu, ako je napríklad premena potrubia spojení na jediné spojenie. Na zvýšenie rýchlosti môže optimalizátor rozdeliť aktivity, ako je napríklad aplikácia transformácie na údaje pred vykonaním operácie redukcie.
vykonávateľ – Vykonávateľ spustí úlohy po dokončení kompilácie a optimalizácie. Pracovné miesta zabezpečuje exekútor.
CLI, UI a Thrift Server – Rozhranie príkazového riadka (CLI) je používateľské rozhranie, ktoré umožňuje externému používateľovi komunikovať s Hive. Šetrný server Hive, podobný protokolom JDBC alebo ODBC, umožňuje externým klientom komunikovať s Hive cez sieť.
zabezpečenia
Apache Hive je integrovaný s bezpečnosťou Hadoop, ktorá používa Kerberos na vzájomnú autentifikáciu klient-server. HDFS diktuje povolenia pre novo vygenerované súbory v Apache Hive, čo vám umožňuje schváliť ich používateľom, skupinou a inými.
kľúčové vlastnosti
- Hive podporuje externé tabuľky, ktoré vám umožňujú spracovávať dáta bez ich ukladania do HDFS.
- Umožňuje tiež segmentáciu údajov na úrovni tabuľky na zvýšenie rýchlosti.
- Apache Hive vynikajúco spĺňa potreby nízkoúrovňového rozhrania Hadoop.
- Hive zjednodušuje sumarizáciu údajov, dopytovanie a analýzu.
- HiveQL nevyžaduje žiadne programovacie zručnosti; stačí jednoduché pochopenie SQL dotazov.
- Môžeme tiež použiť Hive na vykonávanie ad-hoc dotazov na analýzu údajov.
- Je škálovateľný, známy a prispôsobivý.
- HiveQL nevyžaduje žiadne programovacie zručnosti; stačí jednoduché pochopenie SQL dotazov.
Výhody
Apache Hive umožňuje správy na konci dňa, denné hodnotenia transakcií, ad-hoc vyhľadávania a analýzu údajov. Komplexné poznatky, ktoré poskytuje Apache Hive, poskytujú významné konkurenčné výhody a uľahčujú vám reagovať na požiadavky trhu.
Tu sú niektoré z výhod ľahkej dostupnosti takýchto informácií:
- Jednoduchosť použitia – Vďaka jazyku podobnému SQL je dopytovanie údajov jednoduché na pochopenie.
- Zrýchlené vkladanie údajov — Pretože Apache Hive číta schému bez overenia typu tabuľky alebo definície schémy, údaje sa nemusia čítať, analyzovať a serializovať na disk vo vnútornom formáte databázy. Naproti tomu v konvenčnej databáze musia byť údaje pri každom pridaní overené.
- Vynikajúca škálovateľnosť, flexibilita a efektívnosť nákladov – Keďže údaje sú uložené v HDFS, Apache Hive môže obsahovať 100 petabajtov údajov, čo z neho robí oveľa škálovateľnejšiu možnosť ako typická databáza. Apache Hive ako cloudová služba Hadoop umožňuje zákazníkom rýchlo roztáčať a spúšťať virtuálne servery, aby vyhovovali meniacim sa pracovným zaťaženiam.
- Rozsiahla pracovná kapacita – Veľké množiny údajov dokážu spracovať až 100,000 XNUMX dopytov za hodinu.
Obmedzenia
- Vo všeobecnosti majú dotazy Apache Hive veľmi vysokú latenciu.
- Podpora poddotazov je obmedzená.
- Dotazy v reálnom čase a zmeny na úrovni riadkov nie sú v Apache Hive k dispozícii.
- Neexistuje žiadna podpora pre materializované názory.
- V úli nie sú podporované akcie aktualizácie a vymazania.
- Nie je určené pre OLTP (online prechodný proces).
Začíname s Apache Hive
Apache Hive je silný partner Hadoop, ktorý zjednodušuje a zefektívňuje vaše pracovné postupy. Aby ste z Apache Hive vyťažili maximum, je nevyhnutná bezproblémová integrácia. Prvým krokom je ísť do webové stránky.
1. Inštalačný podregistr zo stabilného vydania
Začnite stiahnutím najnovšej stabilnej verzie Hive z jedného zo zrkadiel na stiahnutie Apache (pozri Vydania úľa). Tarball je potom potrebné rozbaliť. Tým sa vytvorí podpriečinok s názvom hive-xyz (kde xyz je číslo vydania):
Nastavte premennú prostredia HIVE_HOME tak, aby ukazovala na inštalačný adresár:
Nakoniec pridajte $HIVE_HOME/bin do svojho PATH
:
2. Bežiaci Úľ
Hive používa Hadoop, takže:
- musíte mať Hadoop v ceste ALEBO
3. Operácia DLL
Vytvorenie tabuľky úľa
vygeneruje tabuľku s názvom pokes s dvoma stĺpcami, z ktorých prvý je celé číslo a druhý je reťazec.
Prehliadanie tabuliek
Zoznam všetkých tabuliek
Zmena a vypustenie tabuliek
Názvy tabuliek je možné zmeniť a stĺpce možno pridať alebo nahradiť:
Stojí za zmienku, že REPLACE COLUMNS nahradí všetky existujúce stĺpce, pričom zmení iba štruktúru tabuľky a nie údaje. V tabuľke musí byť použité natívne SerDe. REPLACE COLUMNS možno použiť aj na odstránenie stĺpcov zo schémy tabuľky:
Zhadzovanie tabuliek
V Apache Hive je mnoho ďalších operácií a funkcií, o ktorých sa môžete dozvedieť na oficiálnej webovej stránke.
záver
Definícia úľa je rozhranie dátového programu na dopytovanie a analýzu veľkých množín údajov, ktoré sú postavené na Apache Hadoop. Profesionáli si ho vyberajú pred inými programami, nástrojmi a softvérom, pretože je určený hlavne pre rozsiahle údaje Hive a jednoducho sa používa.
Dúfam, že vám tento návod pomôže naštartovať sa s Apache Hive a zefektívniť vaše pracovné postupy. Dajte nám vedieť v komentároch.
Nechaj odpoveď