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
- 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í
- Klienti úľov
- Úľové služby
- Ú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;
- Spúšťanie dotazu z používateľského rozhrania (používateľské rozhranie)
- 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
- 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
- Obchod Meta odosiela informácie metadát späť kompilátoru
- Kompilátor komunikujúci s Driverom s navrhovaným plánom na vykonanie dotazu
- Vodič odosiela plány spustenia do spúšťacieho modulu
- 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
- Načítavajú sa výsledky z ovládača
- 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.