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
- 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í
- Klienti úlu
- Úlové služby
- Ú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;
- Provádění dotazů z uživatelského rozhraní (uživatelské rozhraní)
- Ř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
- 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
- Meta store odešle informace metadat zpět kompilátoru
- Kompilátor komunikující s Driverem s navrhovaným plánem pro provedení dotazu
- Driver Sending execution plans to Execution engine
- 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
- Načítání výsledků z ovladače
- 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ě.