Co je MapReduce v Hadoopu? Velká data Architecture
Co je MapReduce v Hadoopu?
MapReduce je softwarový rámec a programovací model používaný pro zpracování velkého množství dat. MapReduce program pracuje ve dvou fázích, a to Map a Reduce. Úlohy mapy se zabývají dělením a mapováním dat, zatímco úlohy Reduce zamíchají a zredukují data.
Hadoop je schopen spouštět programy MapReduce napsané v různých jazycích: Java, Ruby, Python, a C++. Programy Map Reduce v cloud computingu jsou svou povahou paralelní, a proto jsou velmi užitečné pro provádění rozsáhlé analýzy dat pomocí více strojů v clusteru.
Vstup do každé fáze je klíč – hodnota páry. Kromě toho musí každý programátor specifikovat dvě funkce: mapová funkce si snížit funkci.
MapReduce Architecture v Big Data vysvětlená pomocí příkladu
Celý proces prochází čtyřmi fázemi provádění, konkrétně rozdělením, mapováním, mícháním a redukcí.
Nyní v tomto tutoriálu MapReduce pochopíme pomocí příkladu MapReduce –
Zvažte, že máte následující vstupní data pro MapReduce in Program pro velká data
Welcome to Hadoop Class Hadoop is good Hadoop is bad
Konečným výstupem úlohy MapReduce je
špatný | 1 |
Třída | 1 |
dobrý | 1 |
Hadoop | 3 |
is | 2 |
na | 1 |
Vítejte | 1 |
Data procházejí následujícími fázemi MapReduce v Big Data
Vstupní rozdělení:
Vstup do úlohy MapReduce v Big Data je rozdělen na části s pevnou velikostí, tzv vstupní rozdělení Vstupní rozdělení je část vstupu, která je spotřebována jednou mapou
Mapování
Toto je úplně první fáze provádění programu map-reduce. V této fázi jsou data v každém rozdělení předána do mapovací funkce pro vytvoření výstupních hodnot. V našem příkladu je úkolem fáze mapování spočítat počet výskytů každého slova ze vstupních rozdělení (více podrobností o input-split je uvedeno níže) a připravit seznam ve formě
Míchání
Tato fáze spotřebovává výstup z fáze mapování. Jeho úkolem je konsolidovat příslušné záznamy z výstupu fáze Mapování. V našem příkladu jsou stejná slova spojena společně s jejich příslušnou frekvencí.
Snižování
V této fázi se agregují výstupní hodnoty z fáze Shuffling. Tato fáze kombinuje hodnoty z fáze Shuffling a vrací jednu výstupní hodnotu. Stručně řečeno, tato fáze shrnuje kompletní datovou sadu.
V našem příkladu tato fáze agreguje hodnoty z fáze Shuffling, tj. vypočítává celkový počet výskytů každého slova.
MapReduce Archipodrobně vysvětlenou
- Pro každé rozdělení je vytvořena jedna mapová úloha, která pak provádí mapovací funkci pro každý záznam v rozdělení.
- Vždy je výhodné mít více rozdělení, protože čas potřebný ke zpracování rozdělení je malý ve srovnání s časem potřebným pro zpracování celého vstupu. Když jsou rozdělení menší, zpracování je lepší načíst vyvážené, protože zpracováváme rozdělení paralelně.
- Není však také žádoucí mít rozštěpy příliš malé velikosti. Když jsou rozdělení příliš malá, přetížení správy rozdělení a vytváření mapových úloh začne dominovat celkové době provádění úlohy.
- Pro většinu úloh je lepší vytvořit velikost rozdělení rovnající se velikosti bloku HDFS (což je ve výchozím nastavení 64 MB).
- Provádění mapových úloh vede k zápisu výstupu na lokální disk v příslušném uzlu a ne na HDFS.
- Důvodem pro volbu lokálního disku před HDFS je vyhnout se replikaci, ke které dochází v případě provozu úložiště HDFS.
- Mapový výstup je mezivýstup, který je zpracován pomocí redukovaných úloh, aby se vytvořil konečný výstup.
- Po dokončení úlohy lze mapový výstup zahodit. Takže ukládání do HDFS s replikací se stává přehnaným.
- V případě selhání uzlu, než je výstup mapy spotřebován úlohou snížení, Hadoop znovu spustí úlohu mapy na jiném uzlu a znovu vytvoří mapový výstup.
- Úloha Reduce nefunguje na konceptu datové lokality. Výstup každé mapové úlohy je přiváděn do úlohy snížení. Mapový výstup se přenese do stroje, kde běží úloha snížení.
- Na tomto stroji je výstup sloučen a poté předán do uživatelem definované funkce snížení.
- Na rozdíl od mapového výstupu je zmenšený výstup uložen v HDFS (první replika je uložena na lokálním uzlu a další repliky jsou uloženy na uzlech mimo rack). Takže, psaní snížit výstup
Jak funguje MapReduce Organizes?
Nyní v tomto tutoriálu MapReduce se naučíme, jak MapReduce funguje
Hadoop rozděluje práci na úkoly. Existují dva typy úkolů:
- Mapové úkoly (Rozdělení a mapování)
- Omezte úkoly (Zamíchání, zmenšení)
jak je zmíněno výše.
Celý proces provádění (provádění úloh Map a Reduce, obojí) je řízen dvěma typy entit nazývanými a
- Jobtracker: Chová se jako a mistr (zodpovědný za kompletní provedení zadané zakázky)
- Sledování více úkolů: Chová se jako otroci, každý z nich vykonával práci
Pro každou úlohu odeslanou k provedení v systému existuje jedna Jobtracker která sídlí na Namenode a jsou více tasktrackerů které sídlí na Datanode.
- Úloha je rozdělena do více úloh, které jsou pak spuštěny na více datových uzlech v clusteru.
- Je odpovědností nástroje pro sledování úloh koordinovat aktivitu plánováním úloh, které se mají spouštět na různých datových uzlech.
- O provedení jednotlivého úkolu se pak stará task tracker, který sídlí na každém datovém uzlu provádějícím část úlohy.
- Úkolem nástroje pro sledování úloh je odeslat zprávu o průběhu do nástroje pro sledování úloh.
- Kromě toho nástroj pro sledování úkolů pravidelně odesílá 'tlukot srdce' signál do Jobtrackeru, aby jej informoval o aktuálním stavu systému.
- Job tracker tak sleduje celkový průběh každé úlohy. V případě selhání úlohy ji může nástroj pro sledování úloh přeplánovat na jiný nástroj pro sledování úloh.