Mi az a MapReduce a Hadoopban? Archiszerkezet és diagram
⚡ Okos összefoglaló
A MapReduce egy Hadoop programozási modell, amely egy nagy adathalmazt kis eredményné alakít egy map függvény futtatásával minden bemeneti osztáson, majd egy reduce függvény futtatásával a csoportosított köztes értékeken.
Mi az a MapReduce a Hadoopban?
A MapReduce egy szoftver keretrendszer és programozási modell, amelyet hatalmas mennyiségű adat feldolgozására használnak. A MapReduce programok két fázisban működnek, nevezetesen a Map és a Reduce fázisban. A Map feladatok a felosztással és a térképezéssel foglalkoznak.ping az adatok mennyiségét, miközben a feladatok csökkentése keveri és csökkenti az adatokat.
Hadoop képes különféle nyelveken írt MapReduce programok futtatására: Java, Ruby, Pythonés C++A MapReduce programok természetüknél fogva párhuzamosak, így nagyon hasznosak nagyméretű adatelemzés elvégzéséhez a fürtben lévő több gép használatával.
Minden fázis bemenete kulcs-érték párok. Ezenkívül minden programozónak két függvényt kell megadnia: egy map függvényt és egy reduce függvényt.
MapReduce Archia Big Data-ban a példával magyarázott szerkezet
A teljes folyamat négy végrehajtási fázison megy keresztül, nevezetesen: felosztás, térképezésping, keverés és csökkentése.
Ebben a MapReduce oktatóanyagban most egy MapReduce példával nézzük meg a használatát.
Tegyük fel, hogy a következő bemeneti adatokkal rendelkezel a MapReduce-hoz: Big adatok program:
Welcome to Hadoop Class Hadoop is good Hadoop is bad
Az alábbi ábra tracezt a három sort minden fázison keresztül végigjátssza, a bal oldali bemeneti felosztásoktól a jobb oldali utolsó szószámig.
A MapReduce feladat végső kimenete az
| rossz | 1 |
| Osztály | 1 |
| jó | 1 |
| Hadoop | 3 |
| is | 2 |
| nak nek | 1 |
| Onboarding, integráció | 1 |
Az adatok a MapReduce következő fázisain mennek keresztül a Big Data-ban.
Bemeneti felosztások
Egy Big Data MapReduce feladat bemenete fix méretű darabokra, úgynevezett bemeneti felosztásokra van osztva. A bemeneti felosztás a bemenet egy olyan része, amelyet egyetlen map használ fel.
Térképping
Ez a MapReduce program végrehajtásának legelső fázisa. Ebben a fázisban az egyes szakaszokban lévő adatok átadódnak egy map-nek.ping függvény kimeneti értékek előállításához. Példánkban a térkép feladataping A fázis az, hogy megszámoljuk az egyes szavak előfordulásainak számát a bemeneti felosztásokból (a bemeneti felosztásokról további részletek alább találhatók), és elkészítjük a következő formátumú listát: .
Keverés
Ez a fázis felhasználja a Térkép kimenetét.ping fázis. Feladata a releváns rekordok összesítése a Térképről.ping fáziskimenet. Példánkban ugyanazok a szavak vannak egymás mellé helyezve a hozzájuk tartozó gyakorisággal együtt.
csökkentő
Ebben a fázisban a keverési fázisból származó kimeneti értékek összesítésre kerülnek. Ez a fázis egyesíti a keverési fázis értékeit, és egyetlen kimeneti értéket ad vissza. Röviden, ez a fázis összegzi a teljes adathalmazt.
Példánkban ez a fázis összesíti a keverési fázisból származó értékeket, azaz kiszámítja az egyes szavak teljes előfordulását.
MapReduce Architecture részletesen kifejtve
Az alábbi pontok elmagyarázzák, hogyan helyezkednek el és tárolódnak a felosztások, a feladatok leképezése és a feladatok csökkentése a fürtön belül.
- Minden felosztáshoz létrejön egy leképezési feladat, amely ezután végrehajtja a leképezési függvényt a felosztásban lévő minden rekordhoz.
- Mindig előnyös több felosztást használni, mivel egy felosztás feldolgozásához szükséges idő rövidebb a teljes bemenet feldolgozásához képest. Ha a felosztások kisebbek, a feldolgozás jobban elosztott terhelésű, mivel a felosztások párhuzamosan kerülnek feldolgozásra.
- Azonban az sem kívánatos, hogy túl kicsi felosztások legyenek. Ha a felosztások túl kicsik, a felosztások kezelésének és a térképfeladatok létrehozásának többletterhelése kezdi uralni a teljes feladatvégrehajtási időt.
- A legtöbb feladatnál jobb, ha a felosztási méretet egy … méretével megegyezőre állítjuk be. HDFS blokk, amely a Hadoop 2.x verziótól kezdődően alapértelmezés szerint 128 MB-ra van beállítva (a Hadoop 1.x verzióban 64 MB volt), és amelyet a
dfs.blocksizeingatlan. - A map feladatok végrehajtása a kimenet írását a megfelelő csomóponton lévő helyi lemezre, és nem a HDFS-be eredményezi.
- A helyi lemez HDFS helyetti választásának oka az, hogy elkerüljük a HDFS tárolási művelet során bekövetkező replikációt.
- A térképkimenet egy köztes kimenet, amelyet redukciós feladatokkal dolgoznak fel a végső kimenet létrehozása érdekében.
- A munka befejezése után a térképkimenet kidobható. Így HDFS-ben való tárolása replikációval túlzásba esik.
- Csomóponthiba esetén, mielőtt a leképezési kimenetet felhasználná a redukciós feladat, a Hadoop újrafutja a leképezési feladatot egy másik csomóponton, és újra létrehozza a leképezési kimenetet.
- A Reduce taskok nem az adatlokalitás elvén működnek. Minden map task kimenete a reduce taskba kerül. A map kimenete átkerül arra a gépre, amelyen a reduce task fut.
- Ezen a gépen a kimenetet egyesíti, majd átadja a felhasználó által meghatározott csökkentő funkciónak.
- A map kimenettel ellentétben a reduce kimenet HDFS-ben tárolódik (az első replika a helyi csomóponton, a többi replika pedig racken kívüli csomópontokon tárolódik). Tehát a reduce kimenet írása hálózati sávszélességet fogyaszt, de csak annyit, mint egy normál HDFS írási folyamat.
Hogyan működik a MapReduce Organizes?
Ebben a MapReduce oktatóanyagban most megtudjuk, hogyan működik a MapReduce.
A Hadoop a feladatokat feladatokra osztja. Kétféle feladat létezik:
- Térképfeladatok (Részek és Térképping)
- Feladatok csökkentése (keverés, csökkentése)
A teljes végrehajtási folyamatot, azaz mind a Map, mind a Reduce feladatok végrehajtását, kétféle entitás vezérli, az úgynevezett:
- MunkaTracker: mesterként viselkedik, és felelős a beküldött munkafolyamat teljes végrehajtásáért.
- Több feladatTrackers: rabszolgaként viselkednek, mindegyikük elvégzi a munka egy részét.
Minden végrehajtásra beküldött feladathoz tartozik egy a rendszerben végrehajtandó feladat.Tracker, amely a NameNode-on található, és több Task is vanTraca DataNode-okon található ker-ek.
Jegyzet: a MunkaTracker és FeladatTracA ker pár a MapReduce 1-es verziójához tartozik (Hadoop 1.x). A Hadoop 2.x-től kezdődően a YARN ezeket a feladatokat egy klaszterszintű ResourceManager, minden csomóponton található NodeManager és jobonként egy ApplicationMaster között osztja fel, bár maguk a leképezési, keverési és csökkentési fázisok változatlanok maradnak.
Az alábbi ábra azt mutatja, hogyan bontható fel egy beküldött munka feladataira és tracátrepült a fürtön.
- Egy feladatot több feladatra osztanak, amelyeket aztán egy fürt több adatcsomópontján futtatnak.
- Ez a munkakör felelőssége tracker a tevékenység koordinálására a feladatok különböző adatcsomópontokon történő futtatásának ütemezésével.
- Egy adott feladat végrehajtását ezután a feladat felügyeli. tracker, amely a feladat részét végrehajtó minden adatcsomóponton található.
- A feladat tracA ker felelőssége, hogy elküldje a haladásról szóló jelentést a munkának. tracker.
- Ezenkívül a feladat tracA ker periodikusan „szívverés” jelet küld a JobnakTracker, hogy értesítse a rendszer aktuális állapotáról.
- Így a munka tracker tartja track az egyes feladatok teljes előrehaladásáról. Feladathiba esetén a feladat tracA ker átütemezheti egy másik feladatra tracker.


