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
MapReduce Architecture
MapReduce Architecture

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ů:

  1. Mapové úkoly (Rozdělení a mapování)
  2. 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

  1. Jobtracker: Chová se jako a mistr (zodpovědný za kompletní provedení zadané zakázky)
  2. 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.

Jak Hadoop MapReduce funguje
Jak Hadoop MapReduce funguje
  • Ú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.