Co je MapReduce v Hadoopu?
MapReduce je softwarový rámec a programovací model používaný ke zpracování obrovského množství dat. Program MapReduce funguje ve dvou fázích, jmenovitě Map a Reduce. Úkoly mapování se zabývají rozdělením a mapováním dat, zatímco redukují zamíchání úkolů a snižují 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 cloudových výpočtech mají paralelní povahu, takže jsou velmi užitečné pro provádění rozsáhlé analýzy dat pomocí více strojů v klastru.
Vstupem do každé fáze jsou páry klíč – hodnota . Kromě toho musí každý programátor specifikovat dvě funkce: mapovou funkci a redukční funkci .
V tomto kurzu pro začátečníky Hadoop MapReduce se naučíte-
- Co je MapReduce v Hadoopu?
- Architektura MapReduce ve velkých datech je podrobně vysvětlena
- MapReduce Architecture je vysvětleno podrobně
- Jak funguje MapReduce?
Architektura MapReduce ve velkých datech je podrobně vysvětlena
Celý proces prochází čtyřmi fázemi provádění, konkrétně rozdělením, mapováním, přeskupením a redukcí.
Nyní v tomto tutoriálu MapReduce, pojďme pochopit příklad MapReduce -
Zvažte, že máte následující vstupní data pro vaši MapReduce v programu Big Data
Welcome to Hadoop ClassHadoop is goodHadoop is bad
Konečný výstup úlohy MapReduce je
špatný | 1 |
Třída | 1 |
dobrý | 1 |
Hadoop | 3 |
je | 2 |
na | 1 |
Vítejte | 1 |
Data procházejí následujícími fázemi MapReduce ve velkých datech
Rozdělení vstupu:
Vstup do úlohy MapReduce v Big Data je rozdělen na části pevné velikosti, které se nazývají vstupní rozdělení. Rozdělení vstupu je část vstupu, která je spotřebována jednou mapou
Mapování
Toto je úplně první fáze provádění programu redukce mapy. V této fázi jsou data v každém rozdělení předávána mapovací funkci za účelem 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 vstupním rozdělení je uvedeno níže) a připravit seznam ve formě
Míchání
Tato fáze spotřebovává výstup 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 spojována společně s jejich příslušnou frekvencí.
Snižování
V této fázi jsou agregovány 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ý výskyt každého slova.
MapReduce Architecture je vysvětleno podrobně
- Pro každý split je vytvořen jeden mapový úkol, který poté provede mapovou funkci pro každý záznam v split.
- Je vždy výhodné mít více rozdělení, protože čas potřebný na zpracování rozdělení je malý ve srovnání s časem potřebným na zpracování celého vstupu. Když jsou rozdělení menší, je lepší vyrovnat zpracování zátěže, protože rozdělujeme paralelně.
- Rovněž však není žádoucí, aby rozdělení mělo příliš malou velikost. Když jsou rozdělení příliš malá, přetížení správy vytváření úkolů rozdělení a mapování začíná dominovat celkové době provádění úlohy.
- U většiny úloh je lepší udělat dělenou velikost rovnou velikosti bloku HDFS (což je ve výchozím nastavení 64 MB).
- Provedení úloh mapování vede k zápisu výstupu na místní disk v příslušném uzlu a nikoli na HDFS.
- Důvodem pro výběr místního disku přes HDFS je, aby nedocházelo k replikaci, ke které dochází v případě provozu úložiště HDFS.
- Výstup mapy je mezilehlý výstup, který je zpracován redukcí úkolů k vytvoření konečného výstupu.
- Po dokončení úlohy lze výstup mapy vyhodit. Jeho ukládání do HDFS s replikací se tedy stává přehnaným.
- V případě selhání uzlu Hadoop před spotřebováním výstupu mapy úkolem redukce znovu spustí úlohu mapy na jiném uzlu a znovu vytvoří výstup mapy.
- Úkol Omezit nefunguje na konceptu datové lokality. Výstup každého úkolu mapy je přiváděn do úlohy zmenšení. Výstup mapy se přenese do stroje, kde je spuštěna úloha zmenšení.
- Na tomto počítači je výstup sloučen a poté předán uživatelem definované funkci zmenšení.
- Na rozdíl od mapového výstupu je zmenšený výstup uložen v HDFS (první replika je uložena v místním uzlu a další repliky jsou uloženy v uzlech mimo stojan). Takže psaní snížení výkonu
Jak funguje MapReduce?
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í)
- Omezit úkoly (zamíchání, zmenšení)
jak je zmíněno výše.
Kompletní proces provádění (provádění úloh Map a Reduce, obojí) je řízen dvěma typy entit zvanými a
- Jobtracker : Chová se jako pán (odpovědný za úplné provedení zadané úlohy)
- Více sledovačů úloh : Chová se jako otroci, každý z nich vykonává svou práci
Pro každou práci předloženy k provedení do systému, je tam jeden Jobtracker která je umístěna na Namenode a existuje několik tasktrackers , které jsou umístěny na Datanode .
- Úloha je rozdělena do více úkolů, které jsou poté spuštěny na více datových uzlů v klastru.
- Sledovač úloh je odpovědný za koordinaci aktivity naplánováním úloh tak, aby byly spuštěny na různých datových uzlech.
- Prováděním jednotlivých úkolů je pak péče pomocí sledovače úkolů, který je umístěn na každém datovém uzlu provádějícím část úlohy.
- Odpovědností sledovače úkolů je odeslat zprávu o postupu do sledovače úloh.
- Sledovač úloh navíc pravidelně zasílá Jobtrackeru signál „prezenčního signálu “ , aby jej informoval o aktuálním stavu systému.
- Sledovač úloh tedy sleduje celkový pokrok každé úlohy. V případě selhání úkolu jej může sledovač úloh přeplánovat na jiný sledovač úloh.