Čo je to Hive? Architektúra & Režimy

Obsah:

Anonim

V tomto návode sa naučíte

  • Čo je to Hive?
  • Architektúra úľov
  • Rôzne režimy úľa
  • Čo je Hive Server2 (HS2)?

Čo je to Hive?

Hive je nástroj na ukladanie dát ETL a dáta vyvinutý nad Hadoop Distributed File System (HDFS). Úľ uľahčuje prácu napríklad pri operáciách

  • Zapuzdrenie údajov
  • Ad-hoc dotazy
  • Analýza obrovských súborov údajov

Dôležitá charakteristika úľa

  • V Úli sa najskôr vytvárajú tabuľky a databázy a potom sa do týchto tabuliek načítajú údaje.
  • Úľ ako dátový sklad určený na správu a dopytovanie iba štruktúrovaných údajov, ktoré sú uložené v tabuľkách.
  • Pri práci so štruktúrovanými dátami Map Reduce nemá optimalizačné a použiteľné funkcie ako UDF, ale framework Hive áno. Optimalizácia dotazov predstavuje efektívny spôsob vykonávania dotazov z hľadiska výkonu.
  • Jazyk inšpirovaný Hive SQL oddeľuje používateľa od zložitosti programovania Map Reduce. Na uľahčenie učenia opakovane používa známe koncepty zo sveta relačných databáz, ako sú tabuľky, riadky, stĺpce a schéma, atď.
  • Programovanie Hadoopu funguje na plochých súboroch. Hive teda môže pomocou adresárových štruktúr „rozdeliť“ údaje na zlepšenie výkonu pri určitých dotazoch.
  • Nová a dôležitá súčasť Hive, tj Metastore, používaná na ukladanie informácií o schéme. Toto úložisko Metastore sa zvyčajne nachádza v relačnej databáze. S Hive môžeme interagovať pomocou metód ako
    • Webové grafické rozhranie
    • Rozhranie Java Database Connectivity (JDBC)
  • Väčšina interakcií sa zvyčajne odohráva cez rozhranie príkazového riadku (CLI). Hive poskytuje CLI na písanie dotazov Hive pomocou jazyka Hive Query Language (HQL)
  • Syntax HQL je vo všeobecnosti podobná syntaxe SQL, ktorú pozná väčšina analytikov údajov. Nasledujúci ukážkový dotaz zobrazuje všetky záznamy prítomné v uvedenom názve tabuľky.
    • Vzorový dopyt : Vyberte * z
  • Úľ podporuje štyri formáty súborov, ktorými sú TEXTFILE, SEQUENCEFILE, ORC a RCFILE (Record Columnar File).
  • Pre úložisko metadát jedného používateľa používa Úľ derby databázu a pre viacerých používateľov Metadáta alebo zdieľané metadátové prípady používa úľ MYSQL.

Pre nastavenie MySQL ako databázy a pre ukladanie metadátových informácií si pozrite príručku „Inštalácia a konfigurácia HIVE a MYSQL“

Niektoré kľúčové body týkajúce sa úľa:

  • Hlavný rozdiel medzi HQL a SQL je v tom, že dotaz Hive sa vykonáva skôr na infraštruktúre spoločnosti Hadoop ako na tradičnej databáze.
  • Vykonanie dotazu v úli bude ako séria automaticky generovaných úloh na zmenšenie mapy.
  • Hive podporuje koncepcie oddielov a segmentov na ľahké načítanie údajov, keď klient vykoná dotaz.
  • Hive podporuje vlastné špecifické UDF (User Defined Functions) na čistenie dát, filtrovanie atď. Podľa požiadaviek programátorov je možné definovať Hive UDF.

Relačné databázy Hive Vs: -

Použitím Hive môžeme vykonávať niektoré zvláštne funkcie, ktoré sa v relačných databázach nedosahujú. Pre obrovské množstvo údajov, ktoré sú v petabajtoch, je dôležité vyhľadávať ich a získavať výsledky v priebehu niekoľkých sekúnd. A Hive to robí dosť efektívne, rýchlo spracuje dotazy a prináša výsledky za sekundu.

Pozrime sa teraz, čo robí Hive tak rýchlym.

Niektoré kľúčové rozdiely medzi databázami Hive a relačnými databázami sú nasledujúce;

Relačné databázy sú „ Schéma pri čítaní a Schéma pri zápise “. Najskôr vytvorte tabuľku a potom vložte údaje do konkrétnej tabuľky. Na tabuľkách relačnej databázy je možné vykonávať funkcie ako Vkladanie, Aktualizácia a Úpravy.

Úľ je „ Schéma iba na ČÍTANIE “. Funkcie ako aktualizácia, úpravy atď. S týmto teda nefungujú. Pretože dotaz Hive v typickom klastri beží na viacerých dátových uzloch. Nie je teda možné aktualizovať a upravovať údaje vo viacerých uzloch. (Úlové verzie nižšie ako 0,13)

Úľ taktiež podporuje vzor „ ČÍTAJTE VIAC NAPÍŠTE raz “. Čo znamená, že po vložení tabuľky môžeme tabuľku aktualizovať na najnovšie verzie Hive.

POZNÁMKA : Nová verzia Hive však prichádza s aktualizovanými funkciami. Verzie úľov (úľ 0.14) prichádzajú s možnosťami aktualizácie a odstránenia ako nové funkcie

Architektúra úľov

Vyššie uvedená snímka obrazovky podrobne vysvetľuje architektúru Apache Hive

Úľ Pozostáva hlavne z 3 základných častí

  1. Klienti úľov
  2. Úľové služby
  3. Úložisko a výpočty

Klienti úľov:

Hive poskytuje rôzne ovládače pre komunikáciu s iným typom aplikácií. Pre aplikácie založené na Thrift bude poskytovať Thrift klientovi komunikáciu.

Pre aplikácie súvisiace s jazykom Java poskytuje ovládače JDBC. Iné ako akékoľvek typy aplikácií poskytované ovládače ODBC. Títo klienti a ovládače zase opäť komunikujú so serverom Hive v službách Hive.

Úľové služby:

Interakcie klientov s Hive je možné vykonávať prostredníctvom služieb Hive. Ak klient chce v Hive vykonávať akékoľvek operácie spojené s dopytmi, musí komunikovať prostredníctvom služieb Hive Services.

CLI je rozhranie príkazového riadku, ktoré slúži ako služba Hive pre operácie DDL (Data Definition Language). Všetky ovládače komunikujú so serverom Hive a s hlavným ovládačom v službách Hive, ako je to znázornené na schéme architektúry vyššie.

Ovládač prítomný v službách Hive predstavuje hlavný ovládač a komunikuje všetky typy aplikácií JDBC, ODBC a ďalších aplikácií špecifických pre klienta. Ovládač spracuje tieto požiadavky z rôznych aplikácií na systémy meta store a field na ďalšie spracovanie.

Úložisko a výpočty úľov:

Úlové služby ako Meta store, File system a Job Client zase komunikujú s úložiskom Hive a vykonávajú nasledujúce akcie

  • Informácie o metadátach tabuliek vytvorených v úli sú uložené v úli „Meta storage database“.
  • Výsledky dotazu a údaje načítané v tabuľkách sa budú ukladať do klastra Hadoop na HDFS.

Postup vykonávania úlohy:

Z vyššie uvedeného screenshotu môžeme pochopiť priebeh vykonávania úlohy v Hive with Hadoop

Tok údajov v úli sa správa nasledujúcim spôsobom;

  1. Spúšťanie dotazu z používateľského rozhrania (používateľské rozhranie)
  2. Vodič spolupracuje s kompilátorom na získaní plánu. (Tu plán odkazuje na vykonávanie dotazu) proces a súvisiace zhromažďovanie informácií o metadátach
  3. Kompilátor vytvorí plán úlohy, ktorá sa má vykonať. Kompilátor komunikujúci s obchodom Meta za účelom získania žiadosti o metadáta
  4. Obchod Meta odosiela informácie metadát späť kompilátoru
  5. Kompilátor komunikujúci s Driverom s navrhovaným plánom na vykonanie dotazu
  6. Vodič odosiela plány spustenia do spúšťacieho modulu
  7. Execution Engine (EE) funguje ako most medzi Hive a Hadoop na spracovanie dotazu. Pre operácie DFS.
  • EE by mala najskôr kontaktovať Názov uzla a potom dátové uzly, aby získala hodnoty uložené v tabuľkách.
  • EE bude načítať požadované záznamy z dátových uzlov. Skutočné údaje tabuliek sa nachádzajú iba v dátovom uzle. Zatiaľ čo z Name Node získava iba metaúdajové informácie pre dopyt.
  • Zhromažďuje skutočné údaje z dátových uzlov súvisiace s uvedeným dotazom
  • Execution Engine (EE) komunikuje obojsmerne s obchodom Meta prítomným v úli s cieľom vykonávať operácie DDL (Data Definition Language). Tu sa vykonávajú operácie DDL ako tabuľky a databázy CREATE, DROP a ALTERING. Meta store bude ukladať iba informácie o názve databázy, názve tabuľky a názve stĺpca. Načíta údaje súvisiace s uvedeným dotazom.
  • Execution Engine (EE) zase komunikuje s démonmi Hadoop, ako sú uzol názvu, dátové uzly a sledovač úloh, aby vykonali dopyt nad súborovým systémom Hadoop
  1. Načítavajú sa výsledky z ovládača
  2. Odosielanie výsledkov do spúšťacieho nástroja. Po načítaní výsledkov z dátových uzlov do EE bude odosielať výsledky späť vodičovi a do používateľského rozhrania (klientske rozhranie)

Úľ Neustále v kontakte so súborovým systémom Hadoop a jeho démonmi prostredníctvom spúšťacieho nástroja. Bodkovaná šípka v vývojovom diagrame úloh zobrazuje komunikáciu spúšťacieho modulu s démonmi Hadoop.

Rôzne režimy úľa

Úľ môže pracovať v dvoch režimoch v závislosti od veľkosti dátových uzlov v Hadoop.

Tieto režimy sú,

  • Lokálny režim
  • Režim zmenšenia mapy

Kedy použiť lokálny režim:

  • Pokiaľ je Hadoop nainštalovaný v pseudo režime s jedným dátovým uzlom, použijeme v tomto režime Hive
  • Ak je veľkosť dát menšia z hľadiska obmedzenia na jeden lokálny počítač, môžeme použiť tento režim
  • Spracovanie bude veľmi rýchle na menších množinách dát prítomných v lokálnom stroji

Kedy použiť režim zmenšenia mapy:

  • Ak má Hadoop viac dátových uzlov a dáta sú distribuované do rôznych uzlov, v tomto režime použijeme Hive
  • Bude prebiehať na veľkom množstve množín údajov a bude sa vykonávať paralelný dopyt
  • Týmto režimom je možné dosiahnuť spracovanie veľkých súborov dát s lepším výkonom

V Hive môžeme nastaviť túto vlastnosť, aby sme spomenuli, ktorý režim môže Hive fungovať? V predvolenom nastavení funguje v režime Zmenšiť mapu a pre miestny režim môžete mať nasledujúce nastavenie.

Úľ pracuje v nastavenom lokálnom režime

SET mapred.job.tracker = lokálny;

Od verzie Hive 0.7 podporuje režim na automatické spúšťanie úloh na zmenšenie mapy v lokálnom režime.

Čo je Hive Server2 (HS2)?

HiveServer2 (HS2) je serverové rozhranie, ktoré vykonáva nasledujúce funkcie:

  • Umožňuje vzdialeným klientom vykonávať dotazy proti podregistru
  • Načítajte výsledky uvedených dotazov

Od najnovšej verzie má niektoré pokročilé funkcie založené napríklad na Thrift RPC;

  • Súbežnosť viacerých klientov
  • Overenie

Zhrnutie:

Hive je nástroj ETL a dátového skladu nad ekosystémom Hadoop a používa sa na spracovanie štruktúrovaných a pološtruktúrovaných údajov.

  • Hive je databáza prítomná v ekosystéme Hadoop, ktorá vykonáva operácie DDL a DML a poskytuje flexibilný dotazovací jazyk, napríklad HQL, na lepšie dopytovanie a spracovanie údajov.
  • Poskytuje toľko funkcií v porovnaní s RDMS, ktorý má určité obmedzenia.

Pre konkrétnu logiku používateľa, aby boli splnené požiadavky klienta.

  • Poskytuje možnosť písania a nasadenia vlastných definovaných skriptov a funkcií definovaných používateľom.
  • Okrem toho poskytuje oddiely a segmenty pre logiku špecifickú pre úložisko.