Čo je MapReduce v programe Hadoop?
MapReduce je softvérový rámec a programovací model používaný na spracovanie veľkého množstva údajov. Program MapReduce funguje v dvoch fázach, a to Map a Reduce. Mapové úlohy sa zaoberajú rozdelením a mapovaním údajov, zatiaľ čo redukujú úlohy v náhodnom poradí a redukujú údaje.
Hadoop je schopný spustiť programy MapReduce napísané v rôznych jazykoch: Java, Ruby, Python a C ++. Programy Map Reduce v cloudových výpočtoch majú paralelnú povahu, a preto sú veľmi užitočné na vykonávanie rozsiahlej analýzy údajov pomocou viacerých strojov v klastri.
Vstupom do každej fázy sú páry kľúč - hodnota . Každý programátor musí navyše určiť dve funkcie: funkciu mapy a funkciu zníženia .
V tomto tutoriáli pre začiatočníkov Hadoop MapReduce sa naučíte -
- Čo je MapReduce v programe Hadoop?
- Architektúra MapReduce Big Data je podrobne vysvetlená
- Architektúra MapReduce je podrobne vysvetlená
- Ako funguje MapReduce?
Architektúra MapReduce Big Data je podrobne vysvetlená
Celý proces prechádza štyrmi fázami vykonávania, a to rozdelením, mapovaním, premiešaním a redukciou.
Teraz v tomto výučbe MapReduce si poďme rozumieť s príkladom MapReduce -
Zvážte, že máte nasledujúce vstupné údaje pre svoju MapReduce v programe Big Data
Welcome to Hadoop ClassHadoop is goodHadoop is bad
Konečný výstup úlohy MapReduce je
zlé | 1 |
Trieda | 1 |
dobre | 1 |
Hadoop | 3 |
je | 2 |
do | 1 |
Vitajte | 1 |
Údaje vo veľkých dátach prechádzajú nasledujúcimi fázami programu MapReduce
Rozdelenie vstupu:
Vstup do úlohy MapReduce v úlohe veľkých dát je rozdelený na kúsky pevnej veľkosti, ktoré sa nazývajú vstupné rozdelenia. Vstupné rozdelenie je časť vstupu, ktorá je spotrebovaná jednou mapou.
Mapovanie
Toto je úplne prvá fáza vo vykonávaní programu redukcie máp. V tejto fáze sa dáta v každom rozdelení odovzdávajú mapovacej funkcii na vytvorenie výstupných hodnôt. V našom príklade je úlohou fázy mapovania spočítať počet výskytov každého slova zo vstupných rozdelení (viac podrobností o vstupnom rozdelení je uvedených nižšie) a pripraviť zoznam vo forme
Miešanie
Táto fáza spotrebováva výstup fázy mapovania. Jeho úlohou je konsolidovať príslušné záznamy z výstupu fázy mapovania. V našom príklade sú rovnaké slová združené spolu s ich príslušnou frekvenciou.
Zníženie
V tejto fáze sa agregujú výstupné hodnoty z fázy premiešania. Táto fáza kombinuje hodnoty z fázy Shuffling a vracia jednu výstupnú hodnotu. Stručne povedané, táto fáza sumarizuje kompletný súbor údajov.
V našom príklade táto fáza agreguje hodnoty z fázy Shuffling, tj počíta celkový výskyt každého slova.
Architektúra MapReduce je podrobne vysvetlená
- Pre každé rozdelenie je vytvorená jedna mapová úloha, ktorá potom vykoná mapovú funkciu pre každý záznam v rozdelení.
- Je vždy výhodné mať viac rozdelení, pretože čas potrebný na spracovanie rozdelenia je malý v porovnaní s časom potrebným na spracovanie celého vstupu. Keď sú rozdelenia menšie, spracovanie je lepšie vyvážiť, pretože spracovávame paralelne.
- Nie je však tiež žiaduce mať príliš malé rozdelenia. Ak sú rozdelenia príliš malé, celkovému času vykonania úlohy začne dominovať preťaženie riadením vytvárania úloh rozdelenia a mapovania.
- Pre väčšinu úloh je lepšie vytvoriť rozdelenú veľkosť, ktorá sa rovná veľkosti bloku HDFS (v predvolenom nastavení je to 64 MB).
- Výsledkom vykonania mapových úloh je zápis výstupu na lokálny disk v príslušnom uzle, a nie na HDFS.
- Dôvodom výberu lokálneho disku cez HDFS je zabrániť replikácii, ktorá sa deje v prípade operácie ukladania HDFS.
- Mapový výstup je medzivýstup, ktorý sa spracuje redukčnými úlohami na konečný výstup.
- Po dokončení úlohy je možné výstup mapy vyhodiť. Takže jeho ukladanie do HDFS s replikáciou bude prehnané.
- V prípade zlyhania uzla, predtým, ako mapový výstup spotrebuje úloha redukcie, Hadoop znovu spustí mapovú úlohu na inom uzle a znovu vytvorí mapový výstup.
- Reduce task nefunguje na koncepte lokality s údajmi. Výstup každej úlohy mapy sa privádza do úlohy zníženia. Výstup mapy sa prenesie do stroja, kde je spustená úloha zníženia.
- Na tomto stroji je výstup zlúčený a potom odovzdaný používateľom definovanej redukčnej funkcii.
- Na rozdiel od mapového výstupu je redukovaný výstup uložený v HDFS (prvá replika je uložená v lokálnom uzle a ďalšie repliky sú uložené v distribučných uzloch). Takže, zápis zníženého výkonu
Ako funguje MapReduce?
Teraz v tomto výučbe MapReduce sa dozvieme, ako MapReduce funguje
Hadoop rozdeľuje prácu na úlohy. Existujú dva typy úloh:
- Mapové úlohy (rozdelenie a mapovanie)
- Znížiť počet úloh (zamiešanie, zmenšenie)
ako je spomenuté vyššie.
Celý proces vykonávania (vykonávanie úloh Map a Reduce, obidve) riadia dva typy entít nazývané a
- Jobtracker : správa sa ako majster (zodpovedný za úplné vykonanie odovzdanej práce)
- Viaceré sledovače úloh : Správajú sa ako otroci, každý z nich vykonáva svoju prácu
Pre každú úlohu odoslanú na vykonanie v systéme existuje jeden Jobtracker, ktorý sa nachádza na Namenode, a existuje niekoľko tasktrackerov, ktoré sa nachádzajú na Datanode .

- Úloha je rozdelená na viac úloh, ktoré sa potom spustia na viacerých dátových uzloch v klastri.
- Sledovač úloh je zodpovedný za koordináciu aktivity naplánovaním úloh tak, aby bežali na rôznych dátových uzloch.
- Vykonaním individuálnej úlohy je potom starostlivosť o sledovač úloh, ktorý sa nachádza na každom dátovom uzle vykonávajúcom časť úlohy.
- Zodpovednosťou nástroja na sledovanie úloh je posielať správu o pokroku do nástroja na sledovanie úloh.
- Sledovač úloh navyše pravidelne odosiela Jobtrackeru signál „srdcového tepu“, aby ho informoval o aktuálnom stave systému.
- Sledovač úloh tak sleduje celkový pokrok každej úlohy. V prípade zlyhania úlohy ho môže sledovač úloh preložiť na iný sledovač úloh.