Hive je široce používaný nástroj pro analýzu velkých dat v podnikání a je to skvělé místo, kde začít, pokud jste v oblasti velkých dat nováčkem. Tato lekce Apache Hive prochází základy Apache Hive, proč je úl nezbytný, jeho funkce a vše ostatní, co byste měli vědět.
Pojďme nejprve pochopit rámec Hadoop, na kterém je Apache Hive postaven.
Apache Hadoop
Apache Hadoop je bezplatný a open source platforma pro ukládání a zpracování velkých datových sad o velikosti od gigabajtů po petabajty. Hadoop umožňuje seskupování mnoha počítačů k paralelní analýze obrovských datových sad, místo aby vyžadoval jeden velký počítač pro ukládání a analýzu dat.
MapReduce a Hadoop Distributed File System jsou dvě z komponent:
- MapReduce – MapReduce je technika paralelního programování pro práci s obrovskými objemy organizovaných, polostrukturovaných a nestrukturovaných dat na klastrech komoditního hardwaru.
- HDFS – HDFS (Hadoop Distributed File System) je komponenta frameworku Hadoop, která ukládá a zpracovává data. Je to souborový systém odolný proti chybám, který běží na standardním hardwaru
Různé dílčí projekty (nástroje) v ekosystému Hadoop, včetně Sqoop, Pig a Hive, se používají k podpoře modulů Hadoop.
- Úl – Hive je framework pro psaní skriptů ve stylu SQL, které provádějí výpočty MapReduce.
- Prase – Pig je procedurální programovací jazyk, který lze použít k vytvoření skriptu pro procesy MapReduce.
- Sqoop – Sqoop je nástroj pro import a export dat mezi HDFS a RDBMS.
Co je to Úl Apache?
Apache Hive je open-source datový sklad program pro čtení, zápis a správu obrovských datových sad uložených přímo v Apache Hadoop Distributed File System (HDFS) nebo jiných systémech pro ukládání dat, jako je Apache HBase.
Vývojáři SQL mohou pomocí Hive vytvářet příkazy Hive Query Language (HQL) pro datové dotazy a analýzy, které jsou srovnatelné s běžnými příkazy SQL. Byl vytvořen, aby usnadnil programování MapReduce odstraněním potřeby učit se a psát dlouhý kód Java. Místo toho můžete své dotazy psát v HQL a Hive vytvoří mapu a zredukuje funkce za vás.
Rozhraní Apache Hive podobné SQL se stalo zlatým standardem pro provádění ad-hoc vyhledávání, shrnutí a analýzu dat Hadoop. Při zahrnutí do cloudu výpočetní sítěToto řešení je obzvláště nákladově efektivní a škálovatelné, a proto mnoho firem, včetně Netflixu a Amazonu, pokračuje ve vývoji a vylepšování Apache Hive.
Historie
Během svého působení na Facebooku Joydeep Sen Sarma a Ashish Thusoo spoluvytvořili Apache Hive. Oba si uvědomili, že aby z Hadoopu vytěžili maximum, museli by vytvořit poměrně komplikované úlohy Java Map-Reduce. Uvědomili si, že nebudou schopni vzdělávat své rychle se rozvíjející inženýrské a analytické týmy v dovednostech, které by potřebovali k využití Hadoopu napříč společností. Inženýři a analytici často používali SQL jako uživatelské rozhraní.
Zatímco SQL mohl splnit většinu analytických potřeb, vývojáři také zamýšleli začlenit programovatelnost Hadoop. Apache Hive vzešel z těchto dvou cílů: deklarativní jazyk založený na SQL, který také umožnil vývojářům přinést vlastní skripty a programy, když SQL nestačilo.
Byl také vyvinut tak, aby uchovával centralizovaná metadata (založená na Hadoopu) o všech souborech dat ve společnosti, aby se usnadnilo vytváření organizací založených na datech.
Jak Apache Hive funguje?
Stručně řečeno, Apache Hive převádí vstupní program napsaný v jazyce HiveQL (podobný SQL) na jednu nebo více úloh Java MapReduce, Tez nebo Spark. (Všechny tyto spouštěcí motory jsou kompatibilní s Hadoop YARN.) Poté Apache Hive uspořádá data do tabulek pro Hadoop Distributed File System HDFS) a provede úkoly na clusteru, aby získal odpověď.
Data
Tabulky Apache Hive jsou uspořádány stejným způsobem jako tabulky v relační databázi, s datovými jednotkami v rozmezí velikosti od větších po menší. Databáze jsou tvořeny tabulkami, které jsou rozděleny do oddílů, které se dále dělí na segmenty. HiveQL (Hive Query Language) se používá pro přístup k datům, která lze měnit nebo přidávat. Data tabulky jsou serializována v rámci každé databáze a každá tabulka má svůj vlastní adresář HDFS.
Architektura
Nyní si povíme o nejdůležitějším aspektu Hive Architecture. Komponenty Apache Hive jsou následující:
Metastore — Sleduje informace o každé tabulce, jako je její struktura a umístění. Metadata oddílu jsou rovněž součástí Hive. To umožňuje ovladači sledovat průběh různých datových sad rozmístěných v clusteru. Data jsou uložena v běžném formátu RDBMS. Metadata podregistru jsou nesmírně důležitá pro to, aby řidič mohl sledovat data. Záložní server pravidelně duplikuje data, takže je lze v případě ztráty dat obnovit.
Řidič – Příkazy HiveQL jsou přijímány ovladačem, který funguje jako kontrolér. Navázáním relací ovladač zahájí provádění příkazu. Sleduje životnost a pokrok manažera. Během provádění příkazu HiveQL ovladač uloží požadovaná metadata. Slouží také jako bod pro sběr dat nebo výsledků dotazu po procesu Reduce.
překladač – Provede kompilaci dotazu HiveQL. Dotaz je nyní převeden na plán provádění. Úkoly jsou uvedeny v plánu. Zahrnuje také kroky, které musí MapReduce provést, aby získal výsledek přeložený dotazem. Dotaz převede kompilátor Hive (AST) na abstraktní strom syntaxe. Převede AST na řízený acyklický graf po kontrole kompatibility a chyb při kompilaci (DAG).
Optimalizátor – Optimalizuje DAG prováděním různých změn v prováděcím plánu. Kombinuje transformace pro lepší efektivitu, jako je přeměna potrubí spojení do jediného spojení. Pro zvýšení rychlosti může optimalizátor rozdělit aktivity, jako je použití transformace na data před provedením operace redukce.
Vykonavatel – Po dokončení kompilace a optimalizace spustí exekutor úlohy. Úlohy zařazuje vykonavatel.
CLI, UI a Thrift Server – Rozhraní příkazového řádku (CLI) je uživatelské rozhraní, které umožňuje externímu uživateli komunikovat s Hive. Thrift server Hive, podobný protokolům JDBC nebo ODBC, umožňuje externím klientům komunikovat s Hive prostřednictvím sítě.
Bezpečnost
Apache Hive je integrován se zabezpečením Hadoop, které používá Kerberos pro vzájemnou autentizaci klient-server. HDFS diktuje oprávnění pro nově vygenerované soubory v Apache Hive, což vám umožňuje schvalovat uživatele, skupinu a další.
Klíčové vlastnosti
- Hive podporuje externí tabulky, které vám umožňují zpracovávat data, aniž byste je ukládali do HDFS.
- Umožňuje také segmentaci dat na úrovni tabulky pro zvýšení rychlosti.
- Apache Hive výborně splňuje potřeby nízkoúrovňového rozhraní Hadoop.
- Hive usnadňuje sumarizaci dat, dotazování a analýzu.
- HiveQL nevyžaduje žádné znalosti programování; stačí jednoduché pochopení SQL dotazů.
- Můžeme také použít Hive k provádění ad-hoc dotazů pro analýzu dat.
- Je škálovatelný, známý a přizpůsobivý.
- HiveQL nevyžaduje žádné znalosti programování; stačí jednoduché pochopení SQL dotazů.
Výhody
Apache Hive umožňuje reporty na konci dne, denní vyhodnocování transakcí, ad-hoc vyhledávání a analýzu dat. Komplexní přehledy poskytované Apache Hive poskytují významné konkurenční výhody a usnadňují vám reagovat na požadavky trhu.
Zde jsou některé z výhod snadné dostupnosti takových informací:
- Snadné použití – Díky jazyku podobnému SQL je dotazování na data snadno pochopitelné.
- Zrychlené vkládání dat — Protože Apache Hive čte schéma, aniž by ověřoval typ tabulky nebo definici schématu, data není nutné číst, analyzovat a serializovat na disk v interním formátu databáze. Naproti tomu v konvenční databázi musí být data při každém přidání validována.
- Vynikající škálovatelnost, flexibilita a nákladová efektivita – Protože jsou data uložena v HDFS, Apache Hive pojme 100 petabajtů dat, což z něj činí mnohem škálovatelnější možnost než typická databáze. Apache Hive jako cloudová služba Hadoop umožňuje zákazníkům rychle točit nahoru a dolů virtuální servery, aby vyhovovaly měnícím se pracovním zátěžím.
- Rozsáhlá pracovní kapacita – Velké datové sady mohou zpracovat až 100,000 XNUMX dotazů za hodinu.
Omezení
- Obecně mají dotazy Apache Hive velmi vysokou latenci.
- Podpora poddotazů je omezená.
- Dotazy v reálném čase a změny na úrovni řádků nejsou v Apache Hive k dispozici.
- Neexistuje žádná podpora pro materializované pohledy.
- V podregistru nejsou podporovány akce aktualizace a odstranění.
- Není určeno pro OLTP (online přechodný proces).
Začínáme s Apache Hive
Apache Hive je silný partner Hadoop, který zjednodušuje a zefektivňuje vaše pracovní postupy. Abyste z Apache Hive vytěžili maximum, je nezbytná bezproblémová integrace. Prvním krokem je přejít na webových stránkách .
1. Instalační podregistr ze stabilní verze
Začněte stažením nejnovější stabilní verze Hive z jednoho ze zrcadel pro stahování Apache (viz Vydání úlu). Tarball je pak nutné rozbalit. Tím se vytvoří podsložka s názvem hive-xyz (kde xyz je číslo vydání):
Nastavte proměnnou prostředí HIVE_HOME tak, aby ukazovala na instalační adresář:
Nakonec do svého přidejte $HIVE_HOME/bin PATH
:
2. Běžící úl
Hive používá Hadoop, takže:
- musíte mít Hadoop v cestě NEBO
3. Operace DLL
Vytvoření tabulky úlu
vygeneruje tabulku s názvem pokes se dvěma sloupci, z nichž první je celé číslo a druhý je řetězec.
Procházení tabulek
Výpis všech tabulek
Změna a vypuštění tabulek
Názvy tabulek lze změnit a sloupce lze přidat nebo nahradit:
Stojí za zmínku, že REPLACE COLUMNS nahradí všechny existující sloupce a změní pouze strukturu tabulky, nikoli data. V tabulce musí být použito nativní SerDe. REPLACE COLUMNS lze také použít k odstranění sloupců ze schématu tabulky:
Spouštění stolů
V Apache Hive je mnoho dalších operací a funkcí, o kterých se můžete dozvědět na oficiálních stránkách.
Proč investovat do čističky vzduchu?
Hive definition je rozhraní datového programu pro dotazování a analýzu velkých datových sad, které jsou postaveny na Apache Hadoop. Profesionálové jej volí před jinými programy, nástroji a softwarem, protože je navržen hlavně pro rozsáhlá data Hive a snadno se používá.
Doufám, že vám tento tutoriál pomůže nastartovat se s Apache Hive a zefektivnit vaše pracovní postupy. Dejte nám vědět do komentářů.
Napsat komentář