Úvod do služby MapReduce
MapReduce je výpočtová súčasť Hadoop Framework pre ľahké písanie aplikácií, ktoré spracúvajú veľké množstvo údajov paralelne a ukladajú sa na veľké klastre lacných komoditných strojov spoľahlivým spôsobom odolným voči poruchám. V tejto téme sa dozvieme viac o tom, ako MapReduce funguje?
MapReduce dokáže vykonávať distribuované a paralelné výpočty pomocou veľkých množín údajov na veľkom počte uzlov. Úloha MapReduce zvyčajne rozdelí vstupné množiny údajov a potom každú z nich spracuje nezávisle pomocou mapových úloh úplne paralelne. Výstup je potom triedený a vstupom na zníženie úloh. Vstup aj výstup úlohy sú uložené v súborových systémoch. Úlohy sú naplánované a monitorované rámcom.
Ako MapReduce funguje?
Architektúra MapReduce obsahuje dve základné komponenty ako služby Daemon zodpovedné za vykonávanie úloh mapovača a redukcie, monitorovanie a opakované vykonávanie úloh pri zlyhaní. V Hadoop 2 a ďalej sú Resource Manager a Node Manager služby démona. Keď klient úlohy odošle úlohu MapReduce, tieto démoni vstúpia do činnosti. Sú tiež zodpovední za paralelné spracovanie a odolnosť voči chybám funkcií MapReduce.
V Hadoop 2 sú riadenie zdrojov a plánovanie úloh alebo monitorovacie funkcie oddelené YARN (Yet Another Resource Negotiator) ako rôzni démoni. V porovnaní s Hadoop 1 s Job Tracker a Task Tracker, Hadoop 2 obsahuje globálny Resource Manager (RM) a Application Masters (AM) pre každú aplikáciu.
- Klient úlohy odošle úlohu správcovi prostriedkov.
- Plánovač programu YARN Resource Manager je zodpovedný za koordináciu alokácie prostriedkov klastra medzi bežiacimi aplikáciami.
- Správca uzlov YARN beží na každom uzle a spravuje prostriedky na úrovni uzlov, koordinujúc sa so správcom prostriedkov. Spúšťa a monitoruje počítacie kontajnery na počítači v klastri.
- Aplikácia Master pomáha prostriedkom z nástroja Resource Manager a pomocou Správcu uzlov spúšťa a koordinuje úlohy MapReduce.
- HDFS sa zvyčajne používa na zdieľanie súborov úloh medzi inými entitami.
Fázy modelu MapReduce
Model MapReduce má tri hlavné a jednu voliteľnú fázu:
1. Mapovač
- Je to prvá fáza programovania MapReduce a obsahuje kódovaciu logiku funkcie mapovača.
- Podmienená logika sa uplatňuje na 'n' počet dátových blokov rozmiestnených po rôznych dátových uzloch.
- Funkcia Mapper akceptuje páry kľúč - hodnota ako vstup ako (k, v), kde kľúč predstavuje ofsetovú adresu každého záznamu a hodnota predstavuje celý obsah záznamu.
- Výstup fázy Mapper bude tiež vo formáte kľúč - hodnota ako (k ', v').
2. Zamiešajte a zoraďte
- Výstup rôznych mapovačov (k ', v') potom prechádza do fázy náhodného výberu a triedenia.
- Všetky duplicitné hodnoty sa odstránia a rôzne hodnoty sa zoskupia na základe podobných kľúčov.
- Výstupom fázy Shuffle a Sort budú opäť páry kľúč - hodnota ako kľúč a pole hodnôt (k, v ()).
3. Redukčné zariadenie
- Výstup fázy Shuffle a Sort (k, v ()) bude vstupom fázy Reducer.
- V tejto fáze sa realizuje logika funkcie redukcie fázy a všetky hodnoty sa agregujú oproti zodpovedajúcim kľúčom.
- Reducer konsoliduje výstupy rôznych mapovačov a počíta konečný výstup úlohy.
- Konečný výstup sa potom zapíše do jedného súboru vo výstupnom adresári HDFS.
4. Kombinátor
- Je to voliteľná fáza v modeli MapReduce.
- Fázová kombinácia sa používa na optimalizáciu výkonu úloh MapReduce.
- V tejto fáze sú rôzne výstupy mapovačov lokálne redukované na úrovni uzlov.
- Napríklad, ak rôzne výstupy mapovača (k, v) pochádzajúce z jedného uzla obsahujú duplikáty, potom sa kombinujú, tj lokálne sa redukujú ako jeden výstup (k, v ()).
- Táto fáza robí fázu Shuffle a Sort ešte rýchlejšiu a umožňuje tak ďalší výkon v úlohách MapReduce.
Všetky tieto fázy úlohy MapReduce je možné znázorniť takto:
Napríklad logika MapReduce na zistenie počtu slov v rade slov môže byť zobrazená nižšie:
fruits_array = (jablko, pomaranč, jablko, guava, hrozno, pomaranč, jablko)
- Mapovacia fáza tokenizuje vstupné pole slov na 'n' počet slov, aby poskytol výstup ako (k, v). Napríklad, zvážte 'jablko'. Výstup mapovača bude (jablko, 1), (jablko, 1), (jablko, 1).
- Shuffle a Sort akceptujú výstup mapovača (k, v) a zoskupia všetky hodnoty podľa svojich klávesov ako (k, v ()). tj (jablko, (1, 1, 1)).
- Fáza redukcie akceptuje výstup Shuffle a sort a dáva súčet hodnôt (apple, (1 + 1 + 1)), zodpovedajúcich ich kľúčom. tj (jablko, 3).
Špekulatívne vykonanie práce MapReduce
V rýchlosti MapReduce dominuje najpomalšia úloha. Takže aby sa zvýšila rýchlosť, nový mapovač bude pracovať na rovnakom súbore údajov súčasne. Ten, kto dokončí úlohu, sa považuje za konečný výstup a druhý sa zabije. Je to optimalizačná technika.
Výhody MapReduce
Tu sú uvedené výhody MapReduce
1. Odolnosť voči poruchám
- Ak dôjde k zlyhaniu stroja vykonávajúceho niekoľko dátových blokov v priebehu úlohy zníženia mapy, zlyhanie sa vyrieši.
- Za ďalšie spracovanie považuje replikované kópie blokov v alternatívnych strojoch.
2. Odolnosť
- Každý uzol pravidelne aktualizuje svoj stav na hlavný uzol.
- Ak podriadený uzol neodošle svoje oznámenie, hlavný uzol pridelí aktuálne spustenú úlohu tohto podriadeného uzla iným dostupným uzlom v klastri.
3. Rýchly
- Spracovanie údajov je rýchle, pretože MapReduce používa ako úložný systém HDFS.
- Proces MapReduce trvá niekoľko minút na spracovanie terabajtov neštruktúrovaného veľkého objemu údajov.
4. Paralelné spracovanie
- Úlohy MapReduce spracúvajú viac blokov rovnakých množín údajov paralelne rozdelením úloh.
- To poskytuje výhodu dokončenia úlohy v kratšom čase.
5. Dostupnosť
- Viaceré repliky rovnakých údajov sa odosielajú do mnohých uzlov v sieti.
- Preto v prípade akejkoľvek poruchy sú ostatné kópie ľahko dostupné na spracovanie bez straty.
6. Škálovateľnosť
- Hadoop je vysoko škálovateľná platforma.
- Tradičné systémy RDBMS nie sú škálovateľné podľa nárastu objemu údajov.
- MapReduce umožňuje spúšťať aplikácie z veľkého počtu uzlov pomocou terabajtov a petabajtov údajov.
7. Nákladovo efektívne
- Funkcia rozšírenia Hadoop spolu s programovaním MapReduce umožňuje ukladať a spracovávať údaje veľmi účinným a cenovo dostupným spôsobom.
- Úspory nákladov môžu byť obrovské ako čísla stoviek za terabajty údajov.
Záver - Ako funguje MapReduce
Moderné údaje sa viac posúvajú smerom k neštruktúrovanému typu a obrovské, konvenčné možnosti spracovania údajov, ako je RDBMS, sú ešte zložitejšie, časovo náročné a nákladné. Programovanie MapReduce spoločnosti Hadoop je však oveľa efektívnejšie, bezpečnejšie a rýchlejšie pri spracovaní veľkých množín údajov dokonca aj terabajtov alebo petabytov.
Odporúčané články
Toto je návod, ako funguje MapReduce. Tu diskutujeme o fázach modelu MapReduce s výhodami a ako to funguje. Ďalšie informácie nájdete aj v nasledujúcich článkoch -
- Komponenty ekosystému Hadoop
- MapReduce Algorithms
- Čo je MapReduce v Hadoope?
- MapReduce Interview Otázky