Hogyan működik a MapReduce? - A MapReduce működése, szakaszai és előnyei

Tartalomjegyzék:

Anonim

Bevezetés a MapReduce-ba

A MapReduce a Hadoop-keretrendszer számítási alkotóeleme az olyan alkalmazások egyszerű írására, amelyek nagy mennyiségű adatot dolgoznak fel párhuzamosan, és olcsó alapanyagok nagy fürtjein tárolnak megbízható és hibatűrő módon. Ebben a témában megtudjuk, hogyan működik a MapReduce?

A MapReduce elosztott és párhuzamos számításokat végezhet nagy adatkészletek felhasználásával, nagy számú csomópont között. A MapReduce job általában felosztja a bemeneti adatkészleteket, majd ezeket mindegyiket egymástól függetlenül, a Map feladatokkal, teljesen párhuzamosan dolgozza fel. A kimenetet ezután válogatják és beadják a feladatok csökkentéséhez. A feladat bevitele és kimenete fájlrendszerekben is tárolódik. A feladatokat a keret ütemezi és ellenőrzi.

Hogyan működik a MapReduce?

A MapReduce architektúra két alapvető összetevőt foglal magában, mint Daemon szolgáltatások, amelyek felelősek a térképkészítő és redukáló feladatok futtatásáért, a feladatok megfigyeléséért és újraindításáért a hiba esetén. A Hadoop 2-ben az Resource Manager és a Node Manager a démon szolgáltatások. Amikor a job kliens benyújt egy MapReduce feladatot, ezek a démonok működésbe lépnek. Felelősek a MapReduce jobok párhuzamos feldolgozásáért és hibatűrésért is.

A Hadoop 2-ben a továbbiakban az erőforrás-kezelést és a feladatok ütemezését vagy megfigyelési funkcióit a YARN (még egy erőforrás-tárgyaló) különféle démonokként szétválasztja. Összehasonlítva a Hadoop 1-vel, a Job Trackerrel és a Feladatkövetővel, a Hadoop 2 minden alkalmazáshoz tartalmaz egy globális erőforrás-kezelőt (RM) és alkalmazás-mestert (AM).

  • A Job Client elküldi a feladatot az erőforrás-kezelőnek.
  • A YARN Resource Manager ütemezője felelős a fürt erőforrás-elosztásának koordinálásáért a futó alkalmazások között.
  • A YARN Node Manager minden csomóponton fut, és csomópont szintű erőforrás-kezelést végez, az erőforrás-kezelővel koordinálva. Elindítja és figyeli a számítási tárolókat a fürtön lévő gépen.
  • Az Application Master segíti a Resource Manager erőforrásait, és a Node Manager használatával futtatja és koordinálja a MapReduce feladatokat.

  • A HDFS-t általában a munkafájlok megosztására használják más entitások között.

A MapReduce modell fázisai

A MapReduce modellnek három fő és egy választható fázisa van:

1. Térképkészítő

  • Ez a MapReduce programozás első fázisa, és tartalmazza a térképező funkció kódolási logikáját.
  • A feltételes logikát az „n” számú adatblokkra alkalmazzuk, amelyek különböző adatcsomópontok között oszlanak meg.
  • A Mapper funkció a kulcs-érték párokat (k, v) bemenetként fogadja el, ahol a gomb az egyes rekordok eltolási címét jelöli, és az érték a teljes rekord tartalmát jelöli.
  • A Mapper fázis kimenete szintén kulcsérték formátumban lesz (k ', v').

2. Véletlen sorrend és rendezés

  • A különféle térképezők kimenete (k ', v') ezután a keverés és rendezés fázisba kerül.
  • Az összes másolatot eltávolítják, és a különböző értékeket hasonló kulcsok alapján csoportosítják.
  • A véletlen sorrend és a rendezés fázis kimenete újra kulcs-érték párok lesz, mint kulcs és az értékek tömbje (k, v ()).

3. Reduktor

  • A Shuffle és Sort fázis kimenete (k, v ()) a Reducer fázis bemenete lesz.
  • Ebben a fázisban a redukáló funkció logikáját hajtjuk végre, és az összes értéket összevonjuk a megfelelő kulcsokkal.
  • A Reducer egyesíti a különféle leképezők kimeneteit és kiszámítja a végső feladat kimenetet.
  • A végső kimenetet ezután egyetlen fájlba írja a HDFS kimeneti könyvtárában.

4. Kombinátor

  • Ez egy opcionális szakasz a MapReduce modellben.
  • Az egyesítő fázist a MapReduce jobok teljesítményének optimalizálására használják.
  • Ebben a fázisban a térképezők különféle kimenetei lokálisan csökkennek a csomópont szintjén.
  • Például, ha az egyes csomópontokból származó különböző térképező kimenetek (k, v) duplikátumokat tartalmaznak, akkor ezek kombinálódnak, azaz helyileg redukálódnak egyetlen (k, v ()) kimenetként.
  • Ez a fázis még gyorsabbá teszi a Shuffle és a Sort fázist, ezáltal lehetővé téve a MapReduce jobok további teljesítményét.

A MapReduce job mindegyik fázisa az alábbiak szerint ábrázolható:

Például a MapReduce logikája a szavak számának a szavak tömbjében történő megtalálásához az alábbiak szerint jeleníthető meg:

gyümölcs_array = (alma, narancs, alma, guajava, szőlő, narancs, alma)

  • A térképező fázis a bemenő szavak tömbjét n számú szavak számává teszi, hogy a kimenetet (k, v) -ként adja meg. Vegyük például az „almát”. A térképkészítő kimenete (alma, 1), (alma, 1), (alma, 1).
  • A véletlen sorrend és a rendezés elfogadja a térképező (k, v) kimenetet, és csoportosít minden értéket kulcsok szerint (k, v ()). Vagyis (alma, (1, 1, 1)).
  • A Reducer fázis elfogadja a Shuffle és a Sort kimenetet, és megadja az értékek összesítését (apple, (1 + 1 + 1)), a kulcsoknak megfelelõen. Vagyis (alma, 3).

A MapReduce munka spekulatív végrehajtása

A MapReduce sebességét a leglassabb feladat uralja. Tehát a sebesség növelése érdekében egy új térképkészítő ugyanabban az adatkészletben fog működni egyszerre. Bármelyik is teljesíti a feladatot, az végleges eredménynek tekintendő, a másikat pedig megölik. Ez egy optimalizálási technika.

A MapReduce előnyei

Az alábbiakban megemlítjük a MapReduce előnyeit

1. Hibatűrés

  • A térképcsökkentési feladat közepén, ha néhány adatblokkot hordozó gép meghibásodik, az architektúra kezeli a hibát.
  • A blokk replikált másolatait alternatív gépekben veszi figyelembe a további feldolgozás céljából.

2. Rugalmasság

  • Minden csomópont rendszeresen frissíti állapotát a mester csomópontra.
  • Ha egy szolga csomópont nem küldi el az értesítést, a fő csomópont a fürt többi elérhető csomópontjához újból hozzárendeli a szolga csomópont aktuálisan futó feladatát.

3. Gyors

  • Az adatfeldolgozás gyors, mivel a MapReduce tárolási rendszerként HDFS-t használ.
  • A MapReduce percet vesz igénybe a terabájt nem strukturált nagy mennyiségű adat feldolgozásához.

4. Párhuzamos feldolgozás

  • A MapReduce feladatok ugyanabból az adatkészletből álló darabokat párhuzamosan dolgoznak fel a feladatok elosztásával.
  • Ez előnye annak, hogy a feladat rövidebb idő alatt teljesül.

5. Elérhetőség

  • Ugyanazon adatok többszörözését a hálózat számos csomópontjára küldjük.
  • Így bármilyen hiba esetén más példányok veszteségmentesen rendelkezésre állnak a feldolgozáshoz.

6. Skálázhatóság

  • A Hadoop egy nagyon méretezhető platform.
  • A hagyományos RDBMS rendszerek nem méretezhetők az adatmennyiség növekedése miatt.
  • A MapReduce lehetővé teszi, hogy hatalmas számú csomópontból futtasson alkalmazásokat, terabájt és petabájtnyi adat felhasználásával.

7. Költséghatékony

  • A Hadoop kicsinyítési funkciója a MapReduce programozással együtt lehetővé teszi az adatok nagyon hatékony és megfizethető módon történő tárolását és feldolgozását.
  • A költségmegtakarítás hatalmas lehet, mivel terabyte-os adatok százai lehetnek.

Következtetés - Hogyan működik a MapReduce

A modern adatok inkább a strukturálatlan típus felé mozognak, és a hatalmas, hagyományos adatfeldolgozási lehetőség, mint például az RDBMS, még nehezebb, idő- és költséges. A Hadoop MapReduce programozása azonban sokkal hatékonyabb, biztonságosabb és gyorsabb a nagy adathalmazok feldolgozásakor, akár terabyte vagy petabájt.

Ajánlott cikkek

Ez egy útmutató a Hogyan működik a MapReduce. Itt tárgyaljuk a MapReduce modell fázisait az Előnyökkel és hogyan működik. Lehet, hogy megnézi a következő cikkeket is, ha többet szeretne megtudni -

  1. Hadoop ökoszisztéma alkatrészek
  2. MapReduce algoritmusok
  3. Mi a MapReduce a Hadoopban?
  4. A MapReduce interjúval kapcsolatos kérdései