Co je Hive? Architecture & Modes

Co je Hive?

Hive je nástroj pro ETL a datové sklady vyvinutý nad Hadoop Distributed File System (HDFS). Úl usnadňuje práci při provádění operací, jako je

  • Zapouzdření dat
  • Ad-hoc dotazy
  • Analýza velkých datových sad

Důležité vlastnosti Hive

  • V Hive se nejprve vytvoří tabulky a databáze a poté se do těchto tabulek načtou data.
  • Hive jako datový sklad určený pro správu a dotazování pouze strukturovaných dat, která jsou uložena v tabulkách.
  • Při práci se strukturovanými daty nemá Map Reduce funkce pro optimalizaci a použitelnost jako UDF, ale rámec Hive ano. Optimalizace dotazu označuje efektivní způsob provádění dotazu z hlediska výkonu.
  • Jazyk Hive inspirovaný SQL odděluje uživatele od složitosti programování Map Reduce. Znovu používá známé koncepty ze světa relačních databází, jako jsou tabulky, řádky, sloupce a schémata atd. pro snadné učení.
  • Programování Hadoopu funguje na plochých souborech. Hive tedy může použít adresářové struktury k „rozdělení“ dat a zlepšit tak výkon u určitých dotazů.
  • Nová a důležitá součást Hive, tj. Metastore, sloužící k ukládání informací o schématu. Tento Metastore se obvykle nachází v relační databázi. S Hive můžeme komunikovat pomocí metod jako
    • Webové uživatelské rozhraní
    • Java Rozhraní Database Connectivity (JDBC).
  • Většina interakcí se obvykle odehrává přes rozhraní příkazového řádku (CLI). Hive poskytuje CLI pro psaní dotazů Hive pomocí Hive Query Language (HQL)
  • Obecně je syntaxe HQL podobná syntaxi SQL syntaxi, kterou zná většina datových analytiků. Ukázkový dotaz níže zobrazí všechny záznamy přítomné v uvedeném názvu tabulky.
    • Ukázkový dotaz : Vyberte * z
  • Hive podporuje čtyři formáty souborů TEXTFILE, SEQUENCEFILE, ORC a RCFILE (Záznam sloupcového souboru).
  • Pro ukládání metadat pro jednoho uživatele používá Hive databázi derby a pro více uživatelů metadata nebo sdílený případ metadat používá Hive MYSQL.

Pro nastavení MySQL jako databáze a k ukládání informací o metadatech „Instalace a konfigurace HIVE a MYSQL“

Některé z klíčových bodů o Hive:

  • Hlavní rozdíl mezi HQL a SQL spočívá v tom, že dotaz Hive se spouští v infrastruktuře Hadoop spíše než v tradiční databázi.
  • Spuštění dotazu Hive bude jako série automaticky generovaných mapových redukovaných úloh.
  • Hive podporuje koncepty oddílů a segmentů pro snadné načítání dat, když klient provádí dotaz.
  • Hive podporuje vlastní specifické UDF (User Defined Functions) pro čištění dat, filtrování atd. Podle požadavků programátorů lze definovat Hive UDF.

Úl vs relační databáze

Pomocí Hive můžeme provádět některé zvláštní funkce, kterých není dosaženo v relačních databázích. U velkého množství dat, která jsou v petabajtech, je důležité je dotazovat a získat výsledky během několika sekund. A Hive to dělá docela efektivně, dotazy zpracovává rychle a poskytuje výsledky ve vteřině.

Podívejme se nyní, co dělá Hive tak rychlým.

Některé klíčové rozdíly mezi Hive a relačními databázemi jsou následující;

Relační databáze jsou „Schéma při čtení a schéma při zápisu“. Nejprve vytvořte tabulku a poté vložte data do konkrétní tabulky. V tabulkách relační databáze lze provádět funkce jako vkládání, aktualizace a úpravy.

Úl je „Schéma pouze pro čtení“. Takže funkce jako aktualizace, úpravy atd. s tím nefungují. Protože dotaz Hive v typickém clusteru běží na více datových uzlech. Není tedy možné aktualizovat a upravovat data ve více uzlech. (verze podregistru pod 0.13)

Hive také podporuje „PŘEČTĚTE MNOHO NAPIŠTE JEDNOU“vzor. Což znamená, že po vložení tabulky můžeme tabulku aktualizovat v nejnovějších verzích Hive.

POZNÁMKA: Nová verze Hive však přichází s aktualizovanými funkcemi. Verze Hive (Hive 0.14) přicházejí s možnostmi Aktualizovat a Smazat jako nové funkce

Úl Architecture

Úl Architecture

Výše uvedený snímek obrazovky vysvětluje Apache Architektura úlu v detailu

Úl se skládá hlavně ze 3 hlavních částí

  1. Klienti Hive
  2. Úlové služby
  3. Úlové úložiště a výpočetní technika

Klienti Hive:

Hive poskytuje různé ovladače pro komunikaci s různými typy aplikací. Pro aplikace založené na Thrift poskytne Thrift klienta pro komunikaci.

Pro Java souvisejících aplikací poskytuje ovladače JDBC. Jiné než jakýkoli typ aplikací poskytuje ovladače ODBC. Tito klienti a ovladače zase komunikují se serverem Hive ve službách Hive.

Služby úlu:

Klientské interakce s Hive lze provádět prostřednictvím Hive Services. Pokud chce klient provádět jakékoli operace související s dotazem v Hive, musí komunikovat prostřednictvím Hive Services.

CLI je rozhraní příkazového řádku, které funguje jako služba Hive pro operace DDL (Data definition Language). Všechny ovladače komunikují se serverem Hive as hlavním ovladačem ve službách Hive, jak je znázorněno na výše uvedeném schématu architektury.

Ovladač přítomný ve službách Hive představuje hlavní ovladač a komunikuje všechny typy aplikací JDBC, ODBC a další specifické klientské aplikace. Driver zpracuje tyto požadavky z různých aplikací na metaúložné a terénní systémy pro další zpracování.

Úložiště a výpočetní technika:

Služby Hive jako Meta store, File system a Job Client zase komunikují s úložištěm Hive a provádějí následující akce

  • Informace o metadatech tabulek vytvořených v Hive jsou uloženy v Hive „Meta storage database“.
  • Výsledky dotazů a data načtená v tabulkách budou uložena v clusteru Hadoop na HDFS.

Průběh realizace zakázky:

Tok provádění úlohy

Z výše uvedeného snímku obrazovky můžeme pochopit tok provádění úlohy v Hive s Hadoopem

Datový tok v Hive se chová následujícím způsobem;

  1. Provádění dotazu z uživatelského rozhraní (uživatelské rozhraní)
  2. Ovladač spolupracuje s kompilátorem za účelem získání plánu. (zde plán odkazuje na provádění dotazu) proces a související shromažďování informací o metadatech
  3. Kompilátor vytvoří plán úlohy, která má být provedena. Kompilátor komunikující s úložištěm Meta za účelem získání požadavku na metadata
  4. Meta store odesílá informace o metadatech zpět do kompilátoru
  5. Kompilátor komunikující s Driverem s navrženým plánem provedení dotazu
  6. Ovladač Odesílání plánů provádění do spouštěcího jádra
  7. Execution Engine (EE) funguje jako most mezi Hive a Hadoop pro zpracování dotazu. Pro operace DFS.
  • EE by měl nejprve kontaktovat Name Node a poté Data nodes, aby získal hodnoty uložené v tabulkách.
  • EE se chystá načíst požadované záznamy z datových uzlů. Skutečná data tabulek jsou uložena pouze v datovém uzlu. Zatímco z Name Node načítá pouze metadata pro dotaz.
  • Sbírá aktuální data z datových uzlů souvisejících s uvedeným dotazem
  • Execution Engine (EE) komunikuje obousměrně s úložištěm Meta přítomným v Hive za účelem provádění operací DDL (Data Definition Language). Zde se provádějí operace DDL jako CREATE, DROP a ALTERING tabulek a databází. Meta store bude ukládat pouze informace o názvu databáze, názvech tabulek a názvech sloupců. Načte data související se zmíněným dotazem.
  • Execution Engine (EE) zase komunikuje s démony Hadoop, jako jsou Name node, Data nodes a job tracker, aby provedl dotaz nad systémem souborů Hadoop.
  1. Načítání výsledků od řidiče
  2. Odesílání výsledků do Execution engine. Jakmile jsou výsledky načteny z datových uzlů do EE, odešle výsledky zpět do ovladače a do uživatelského rozhraní (frontend)

Hive Nepřetržitě v kontaktu se souborovým systémem Hadoop a jeho démony přes Execution engine. Tečkovaná šipka ve vývojovém diagramu úlohy ukazuje komunikaci spouštěcího jádra s démony Hadoop.

Různé režimy Úlu

Hive může fungovat ve dvou režimech v závislosti na velikosti datových uzlů v Hadoopu.

Tyto režimy jsou,

  • Místní režim
  • Režim zmenšení mapy

Kdy použít místní režim:

  • Pokud je Hadoop nainstalován v pseudo režimu s jedním datovým uzlem, použijeme v tomto režimu Hive
  • Pokud je velikost dat menší z hlediska omezení na jeden lokální počítač, můžeme použít tento režim
  • Zpracování bude velmi rychlé na menších souborech dat přítomných v místním počítači

Kdy použít režim zmenšení mapy:

  • Pokud má Hadoop více datových uzlů a data jsou distribuována napříč různými uzly, používáme v tomto režimu Hive
  • Bude pracovat na velkém množství datových sad a dotazů, které se budou provádět paralelně
  • Prostřednictvím tohoto režimu lze dosáhnout zpracování velkých souborů dat s lepším výkonem

V Hive můžeme nastavit tuto vlastnost, abychom zmínili, jaký režim může Hive fungovat? Ve výchozím nastavení funguje v režimu zmenšení mapy a pro místní režim můžete mít následující nastavení.

Úl pro práci v místním režimu nastaven

SET mapred.job.tracker=local;

Od verze Hive 0.7 podporuje režim automatického spouštění úloh zmenšení mapy v místním režimu.

Co je Hive Server2 (HS2)?

HiveServer2 (HS2) je serverové rozhraní, které provádí následující funkce:

  • Umožňuje vzdáleným klientům spouštět dotazy proti Hive
  • Získejte výsledky uvedených dotazů

Od nejnovější verze má některé pokročilé funkce založené na Thrift RPC jako;

  • Souběh více klientů
  • Ověřování

Shrnutí

Hive je nástroj ETL a datového skladu nad ekosystémem Hadoop a používá se pro zpracování strukturovaných a polostrukturovaných dat.

  • Hive je databáze přítomná v ekosystému Hadoop, která provádí operace DDL a DML a poskytuje flexibilní dotazovací jazyk, jako je HQL pro lepší dotazování a zpracování dat.
  • Poskytuje tolik funkcí ve srovnání s RDMS, což má určitá omezení.

Pro uživatelsky specifickou logiku pro splnění požadavků klienta.

  • Poskytuje možnost psaní a nasazení vlastních definovaných skriptů a funkcí definovaných uživatelem.
  • Kromě toho poskytuje oddíly a buckety pro logiku specifickou pro úložiště.

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