Co je Úl? Architektura & Režimy

Obsah:

Anonim

V tomto výukovém programu se naučíte

  • Co je Úl?
  • Architektura úlu
  • Různé režimy úlu
  • Co je Hive Server2 (HS2)?

Co je Úl?

Hive je nástroj pro ukládání dat ETL a dat 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 souborů

Důležité vlastnosti úlu

  • V Hive se nejprve vytvoří tabulky a databáze a poté se do těchto tabulek načtou data.
  • Úl jako datový sklad určený ke správě a dotazování pouze na strukturovaná data uložená v tabulkách.
  • Při práci se strukturovanými daty Map Reduce nemá funkce optimalizace a použitelnosti, jako jsou UDF, ale Hive framework ano. Optimalizace dotazů označuje efektivní způsob provádění dotazů z hlediska výkonu.
  • Jazyk inspirovaný SQL Hive odděluje uživatele od složitosti programování Map Reduce. Pro usnadnění učení opakovaně používá známé koncepty ze světa relačních databází, jako jsou tabulky, řádky, sloupce a schéma atd.
  • Programování Hadoop funguje na plochých souborech. Hive tedy může pomocí adresářových struktur „rozdělit“ data ke zlepšení výkonu u určitých dotazů.
  • Nová a důležitá součást úlu, tj. Metastore, používaná pro ukládání informací o schématu. Toto úložiště Metastore se obvykle nachází v relační databázi. Můžeme komunikovat s Hive pomocí metod jako
    • Webové uživatelské rozhraní
    • Rozhraní Java Database Connectivity (JDBC)
  • Většina interakcí obvykle probíhá přes rozhraní příkazového řádku (CLI). Hive poskytuje rozhraní příkazového řádku pro psaní dotazů Hive pomocí jazyka Hive Query Language (HQL)
  • Obecně je syntaxe HQL podobná syntaxi SQL, kterou většina analytiků dat zná. Níže uvedený ukázkový dotaz zobrazuje všechny záznamy přítomné v uvedeném názvu tabulky.
    • Ukázkový dotaz : Vyberte * z
  • Hive podporuje čtyři formáty souborů, kterými jsou TEXTFILE, SEQUENCEFILE, ORC a RCFILE (Record Columnar File).
  • Pro úložiště metadat pro jednoho uživatele používá Hive databázi derby a pro více uživatelů metadata nebo sdílená metadata pro případ Hive používá MYSQL.

Chcete-li nastavit MySQL jako databázi a uložit metadata, podívejte se na výukový program "Instalace a konfigurace HIVE a MYSQL"

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

  • Hlavní rozdíl mezi HQL a SQL spočívá v tom, že dotaz Hive se spouští spíše na infrastruktuře Hadoop než na tradiční databázi.
  • Provedení dotazu Hive bude jako řada automaticky generovaných úloh snižujících počet map.
  • Hive podporuje koncepty oddílů a segmentů pro snadné načítání dat, když klient provede 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.

Relační databáze Hive Vs: -

Pomocí Hive můžeme provádět některé zvláštní funkce, kterých se v relačních databázích nedaří. Pro obrovské množství dat, která jsou v petabajtech, je důležité dotazovat se a získávat výsledky během několika sekund. A Hive to dělá docela efektivně, rychle zpracovává dotazy a přináší výsledky za druhé.

Podívejme se, co dělá Hive tak rychle.

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

Relační databáze jsou typu „ 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. Na 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í “. Funkce jako aktualizace, úpravy atd. S tím tedy nefungují. Protože dotaz Hive v typickém clusteru běží na více datových uzlech. Takže není možné aktualizovat a upravovat data napříč více uzly. (Verze podregistru pod 0,13)

Úl také podporuje vzor „ READ Many WRITE Once “. 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 aktualizace a mazání jako nové funkce

Architektura úlu

Výše uvedený snímek obrazovky podrobně vysvětluje architekturu Apache Hive

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

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

Klienti úlu:

Hive poskytuje různé ovladače pro komunikaci s jiným typem aplikací. Pro aplikace založené na Thriftu bude poskytovat Thrift klienta pro komunikaci.

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

Úlové služby:

Interakce klienta s Hive lze provádět prostřednictvím Hive Services. Pokud chce klient v Hive provádět jakékoli operace související s dotazy, 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 a s hlavním ovladačem ve službách Hive, jak je znázorněno výše ve schématu architektury.

Ovladač přítomný ve službách Hive představuje hlavní ovladač a komunikuje všechny typy JDBC, ODBC a dalších aplikací specifických pro klienta. Ovladač zpracuje tyto požadavky z různých aplikací do systémů meta store a field pro další zpracování.

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

Úlové služby jako Meta store, File system a Job Client zase komunikují s Hive storage 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.

Tok provádění úlohy:

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

Tok dat v Hive se chová v následujícím vzoru;

  1. Provádění dotazů z uživatelského rozhraní (uživatelské rozhraní)
  2. Řidič spolupracuje s překladačem 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 obchodem Meta pro získání požadavku na metadata
  4. Meta store odešle informace metadat zpět kompilátoru
  5. Kompilátor komunikující s Driverem s navrhovaným plánem pro provedení dotazu
  6. Driver Sending execution plans to Execution engine
  7. Execution Engine (EE) funguje jako most mezi Hive a Hadoop ke zpracování dotazu. Pro operace DFS.
  • EE by nejprve měla kontaktovat Name Node a poté datové uzly, aby získala hodnoty uložené v tabulkách.
  • EE načte požadované záznamy z datových uzlů. Skutečná data tabulek jsou umístěna pouze v datovém uzlu. Zatímco z Name Node načte pouze informace metadat pro dotaz.
  • Shromažďuje skutečná 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 jsou tabulky a databáze CREATE, DROP a ALTERING. Meta store bude ukládat pouze informace o názvu databáze, názvech tabulek a sloupcích. Načte data související s uvedeným dotazem.
  • Execution Engine (EE) zase komunikuje s démony Hadoop, jako je uzel jména, datové uzly a sledovač úloh, aby provedli dotaz nad souborovým systémem Hadoop
  1. Načítání výsledků z ovladače
  2. Odesílání výsledků do spouštěcího nástroje. 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í (front-end)

Úl Neustále v kontaktu se systémem souborů Hadoop a jeho démony prostřednictvím spouštěcího nástroje. Tečkovaná šipka v diagramu úloh ukazuje komunikaci stroje Execution s démony Hadoop.

Různé režimy úlu

Úl může pracovat 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žijeme v tomto režimu Hive
  • Bude fungovat na velkém množství datových sad a dotaz bude prováděn paralelně
  • Prostřednictvím tohoto režimu lze dosáhnout zpracování velkých datových souborů s lepším výkonem

V Hive můžeme nastavit tuto vlastnost, abychom uvedli, který 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 pracuje v místním nastaveném režimu

SET mapred.job.tracker = místní;

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

Co je Hive Server2 (HS2)?

HiveServer2 (HS2) je rozhraní serveru, které vykonává následující funkce:

  • Umožňuje vzdáleným klientům spouštět dotazy proti podregistru
  • Načíst výsledky zmíněných dotazů

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

  • Souběžnost více klientů
  • Ověření

Souhrn:

Hive je nástroj ETL a datového skladu nad ekosystémem Hadoop a používá se ke 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, který má určitá omezení.

Pro specifickou logiku uživatele splňující požadavky klienta.

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