Úvod do MapReduce
MapReduce je výpočetní komponenta Hadoop Framework pro snadné psaní aplikací, které zpracovávají velké množství dat paralelně a ukládají se na velkých klastrech levných komoditních strojů spolehlivým a odolným vůči chybám. V tomto tématu se budeme učit o tom, jak MapReduce funguje?
MapReduce může provádět distribuované a paralelní výpočty pomocí velkých datových sad na velkém počtu uzlů. Úloha MapReduce obvykle rozdělí vstupní datové sady a poté je každá z nich zpracuje nezávisle na mapových úlohách zcela paralelním způsobem. Výstup je poté tříděn a vstupem pro snížení počtu úkolů. Vstup i výstup úlohy jsou uloženy v souborových systémech. Úkoly jsou naplánovány a monitorovány rámcem.
Jak MapReduce funguje?
Architektura MapReduce obsahuje dvě základní komponenty jako služby Daemon odpovědné za spouštění úkolů mapovače a redukce, monitorování a opětovné provádění úkolů při selhání. V Hadoopu 2 jsou Správce zdrojů a Správce uzlů služby démona. Když klient úlohy odešle úlohu MapReduce, tyto démony začnou fungovat. Jsou také zodpovědní za paralelní zpracování a odolnost proti chybám úloh MapReduce.
V Hadoopu 2 jsou řízení zdrojů a funkce plánování a monitorování úloh segregovány společností YARN (Yet Another Resource Negotiator) jako různé démony. Ve srovnání s Hadoop 1 s Job Tracker a Task Tracker, Hadoop 2 obsahuje globální Resource Manager (RM) a Application Masters (AM) pro každou aplikaci.
- Klient úlohy odešle úlohu Správci zdrojů.
- Plánovač programu YARN Resource Manager je zodpovědný za koordinaci přidělování prostředků klastru mezi spuštěnými aplikacemi.
- Správce uzlů YARN běží na každém uzlu a provádí správu prostředků na úrovni uzlů, koordinuje se se správcem prostředků. Spouští a monitoruje kontejnery pro výpočet na počítači v clusteru.
- Aplikace Master pomáhá prostředkům ze Správce zdrojů a používá Správce uzlů ke spuštění a koordinaci úkolů MapReduce.
- HDFS se obvykle používá ke sdílení souborů úloh mezi jinými entitami.
Fáze modelu MapReduce
Model MapReduce má tři hlavní a jednu volitelnou fázi:
1. Mapovač
- Je to první fáze programování MapReduce a obsahuje kódovací logiku funkce mapovače.
- Podmíněná logika je aplikována na 'n' počet datových bloků rozložených přes různé datové uzly.
- Funkce Mapper přijímá páry klíč-hodnota jako vstup jako (k, v), kde klíč představuje ofsetovou adresu každého záznamu a hodnota představuje celý obsah záznamu.
- Výstup fáze Mapper bude také ve formátu klíč-hodnota jako (k ', v').
2. Zamíchat a třídit
- Výstup různých mapovačů (k ', v'), poté přejde do fáze Shuffle a Sort.
- Všechny duplicitní hodnoty jsou odstraněny a různé hodnoty jsou seskupeny dohromady na základě podobných klíčů.
- Výstupem fáze Shuffle a Sort bude opět dvojice klíč-hodnota jako klíč a pole hodnot (k, v ()).
3. Redukce
- Výstupem fáze Shuffle a Sort (k, v ()) bude vstup fáze Reducer.
- V této fázi se provádí logika funkce redukce fází a všechny hodnoty se agregují proti odpovídajícím klíčům.
- Reducer konsoliduje výstupy různých mapovačů a vypočítává konečný výstup úlohy.
- Konečný výstup je poté zapsán do jednoho souboru ve výstupním adresáři HDFS.
4. Kombinátor
- Jedná se o volitelnou fázi v modelu MapReduce.
- Fáze kombinátoru se používá k optimalizaci výkonu úloh MapReduce.
- V této fázi jsou různé výstupy mapovačů lokálně redukovány na úrovni uzlů.
- Pokud například různé výstupy mapovače (k, v) přicházející z jednoho uzlu obsahují duplikáty, pak se spojí, tj. Lokálně se redukují jako jediný výstup (k, v ()).
- Tato fáze ještě více urychluje práci v režimu Shuffle a Sort a umožňuje tak další výkon v úlohách MapReduce.
Všechny tyto fáze úlohy MapReduce lze znázornit níže:
Například logika MapReduce pro nalezení počtu slov na poli slov může být zobrazena níže:
fruits_array = (jablko, pomeranč, jablko, guava, hrozny, pomeranč, jablko)
- Mapovací fáze tokenizuje vstupní pole slov na 'n' počet slov a dává výstup jako (k, v). Například, zvažte 'jablko'. Výstup mapovače bude (jablko, 1), (jablko, 1), (jablko, 1).
- Shuffle and Sort přijímají výstup mapovače (k, v) a seskupují všechny hodnoty podle svých kláves jako (k, v ()). tj. (jablko, (1, 1, 1)).
- Fáze redukce přijímá výstup Shuffle a sort a dává součet hodnot (apple, (1 + 1 + 1)) odpovídajících jejich klíčům. tj. (jablko, 3).
Spekulativní provedení práce MapReduce
Rychlosti MapReduce dominuje nejpomalejší úkol. Takže pro zvýšení rychlosti bude nový mapovač pracovat na stejném datovém souboru současně. Kdokoli dokončí úkol, první se považuje za konečný výstup a druhý je zabit. Jedná se o optimalizační techniku.
Výhody MapReduce
Zde jsou zmíněny výhody MapReduce níže
1. Odolnost proti poruchám
- Pokud během úlohy s omezením mapy dojde k selhání počítače přenášejícího několik datových bloků, architektura tuto chybu řeší.
- Zvažuje replikované kopie bloků v alternativních strojích pro další zpracování.
2. Odolnost
- Každý uzel pravidelně aktualizuje svůj stav na hlavní uzel.
- Pokud podřízený uzel neodešle své oznámení, hlavní uzel přiřadí aktuálně spuštěnou úlohu tohoto podřízeného uzlu dalším dostupným uzlům v klastru.
3. Rychlé
- Zpracování dat je rychlé, protože MapReduce používá jako úložný systém HDFS.
- Zpracování terabajtů nestrukturovaného velkého objemu dat MapReduce trvá několik minut.
4. Paralelní zpracování
- Úlohy MapReduce zpracovávají několik bloků stejných datových sad paralelně rozdělením úkolů.
- To dává výhodu dokončení úkolu v kratším čase.
5. Dostupnost
- Více replik stejných dat je odesíláno do mnoha uzlů v síti.
- V případě jakéhokoli selhání jsou tedy další kopie snadno dostupné ke zpracování bez ztráty.
6. Škálovatelnost
- Hadoop je vysoce škálovatelná platforma.
- Tradiční systémy RDBMS nejsou škálovatelné podle nárůstu objemu dat.
- MapReduce umožňuje spouštět aplikace z velkého počtu uzlů pomocí terabajtů a petabajtů dat.
7. Nákladově efektivní
- Funkce Hadoop's scale-out spolu s programováním MapReduce umožňuje ukládat a zpracovávat data velmi efektivním a cenově dostupným způsobem.
- Úspora nákladů může být obrovská jako čísla stovek za terabajty dat.
Závěr - Jak MapReduce funguje
Moderní data se více přibližují nestrukturovanému typu a obrovské, konvenční možnosti zpracování dat, jako je RDBMS, jsou ještě obtížnější, časově náročnější a nákladnější. Programování MapReduce společnosti Hadoop je však mnohem účinnější, bezpečnější a rychlejší při zpracování rozsáhlých datových sad dokonce i terabytů nebo petabytů.
Doporučené články
Toto je průvodce, jak funguje MapReduce. Zde diskutujeme o fázích modelu MapReduce s výhodami a jak to funguje. Další informace naleznete také v následujících článcích -
- Komponenty ekosystému Hadoop
- MapReduce Algorithms
- Co je MapReduce v Hadoopu?
- MapReduce Interview Otázky