Mi a MapReduce a Hadoopban?
A MapReduce egy szoftveres keretrendszer és programozási modell, amelyet hatalmas mennyiségű adat feldolgozására használnak. A MapReduce program két fázisú munkája, nevezetesen a Map és a Reduce. A térképi feladatok az adatok felosztásával és leképezésével foglalkoznak, míg a Feladatok keverése és az adatok csökkentése.
A Hadoop képes a különböző nyelveken írt MapReduce programok futtatására: Java, Ruby, Python és C ++. A Map Reduce felhőalapú számítás programjai párhuzamos jellegűek, ezért nagyon hasznosak a klaszterben több gép használatával végzett nagyméretű adatelemzéshez.
Az egyes fázisok bemenete kulcs-érték pár. Ezenkívül minden programozónak meg kell határoznia két funkciót: térképfunkciót és redukciós funkciót .
Ebben a kezdő Hadoop MapReduce bemutatóban megtudhatja,
- Mi a MapReduce a Hadoopban?
- A MapReduce Architecture in Big Data részletesen kifejtve
- A MapReduce Architecture részletesen elmagyarázza
- Hogyan szervezi a MapReduce a munkát?
A MapReduce Architecture in Big Data részletesen kifejtve
Az egész folyamat a végrehajtás négy szakaszán megy keresztül, nevezetesen a felosztás, feltérképezés, keverés és csökkentés.
Most ebben a MapReduce oktatóanyagban értsük meg egy MapReduce példával -
Fontolja meg, hogy a MapReduce in Big Data programban a következő bemeneti adatok vannak
Welcome to Hadoop ClassHadoop is goodHadoop is bad
A MapReduce feladat végső eredménye:
rossz | 1 |
Osztály | 1 |
jó | 1 |
Hadoop | 3 |
van | 2 |
nak nek | 1 |
Üdvözöljük | 1 |
Az adatok a MapReduce következő fázisain mennek keresztül a Big Data-ban
Bemeneti felosztás:
A MapReduce in Big Data job bemenete fix méretű darabokra oszlik, az úgynevezett bemeneti felosztásokra. A bemeneti felosztás a bemenet darabja, amelyet egyetlen térkép fogyaszt
Térképezés
Ez a térképcsökkentő program végrehajtásának legelső szakasza. Ebben a fázisban az egyes osztások adatait átadják egy leképezési függvénynek a kimeneti értékek előállításához. Példánkban a fázis leképezése az a feladat, hogy az egyes szavak számát megszámolja a bemeneti osztásokból (az input-splitről további részleteket az alábbiakban adunk), és listát készítünk
Csoszogás
Ez a fázis elhasználja a leképezési fázis kimenetét. Feladata a releváns rekordok konszolidálása a Mapping fázis kimenetéből. Példánkban ugyanazok a szavak egyesülnek a megfelelő gyakorisággal együtt.
Csökkentés
Ebben a fázisban a keverési fázis kimeneti értékeit összesítik. Ez a fázis egyesíti a keverési fázis értékeit, és egyetlen kimeneti értéket ad vissza. Röviden, ez a szakasz összefoglalja a teljes adatkészletet.
Példánkban ez a fázis összesíti a keverési fázis értékeit, azaz kiszámítja az egyes szavak összes előfordulását.
A MapReduce Architecture részletesen elmagyarázza
- Minden felosztáshoz hozzon létre egy térképi feladatot, amely végrehajtja a felosztás minden egyes rekordjának térképfunkcióját.
- Mindig előnyös, ha több felosztást használunk, mert a felosztás feldolgozásához szükséges idő kicsi, mint a teljes bemenet feldolgozásához szükséges idő. Ha a hasítások kisebbek, a feldolgozás jobb, ha a terhelés kiegyensúlyozott, mivel a hasításokat párhuzamosan dolgozzuk fel.
- Az sem kívánatos, ha a hasítások mérete túl kicsi. Ha a felosztások túl kicsiek, akkor a felosztások és a feladatfeladat-létrehozás kezelésének túlterhelése kezd dominálni a munka teljes végrehajtási idejében.
- A legtöbb munka esetében jobb, ha a HDFS-blokk méretével megegyező méretet oszt (amely alapértelmezés szerint 64 MB).
- A térképi feladatok végrehajtása azt eredményezi, hogy a kimenetet a megfelelő csomópont helyi lemezére írja, és nem a HDFS-be.
- A helyi lemez HDFS helyett történő választásának oka az a replikáció elkerülése, amely a HDFS áruház működése esetén történik.
- A térkép kimenet köztes kimenet, amelyet a redukciós feladatok dolgoznak fel a végső kimenet előállításához.
- A munka befejezése után a térkép kimenete kidobható. Tehát a HDFS-ben való replikációval történő tárolás túlzottá válik.
- Csomópont meghibásodás esetén, mielőtt a térkép kimenetét elhasználná a redukciós feladat, Hadoop újra futtatja a térképi feladatot egy másik csomóponton, és újra létrehozza a térkép kimenetét.
- A Reduce feladat nem működik az adat lokalitásának koncepciójánál. Minden térképfeladat kimenete bekerül a csökkentési feladatba. A térkép kimenet átkerül a gépre, ahol a csökkentési feladat fut.
- Ezen a gépen a kimenetet egyesítik, majd továbbítják a felhasználó által definiált csökkentési funkciónak.
- A térkép kimenetétől eltérően a kicsinyített kimenet a HDFS-ben van tárolva (az első replikát a helyi csomóponton tárolják, a többi másolatot pedig az off-rack csomópontokon tárolják). Szóval, a redukciós kimenet megírása
Hogyan szervezi a MapReduce a munkát?
Ebben a MapReduce oktatóanyagban megtudhatjuk, hogyan működik a MapReduce
Hadoop feladatokra osztja a munkát. Kétféle feladat létezik:
- Térkép feladatok (rések és térképezés)
- Csökkentse a feladatokat (keverés, kicsinyítés)
fent említett.
A teljes végrehajtási folyamatot (mind a Map, mind a Reduce feladatok végrehajtását) két típusú entitás vezérli, az úgynevezett a
- Jobtracker : Mesterként viselkedik (felelős a benyújtott munka teljes végrehajtásáért)
- Több feladatkövető : Úgy működik , mint a rabszolgák, mindegyikük elvégzi a munkát
A rendszerben végrehajtásra benyújtott minden egyes munkához tartozik egy Jobtracker, amely a Namenode- on található, és több tasktracker is található a Datanode- on .
- A feladat több feladatra van felosztva, amelyek aztán egy fürt több adatcsomópontjára futnak.
- A jobkövető feladata a tevékenység koordinálása a különböző adatcsomópontokon futó feladatok ütemezésével.
- Az egyedi feladat végrehajtását ezután a feladatkövetőnek kell ellenőriznie, amely a munka minden részét végrehajtó minden adatcsomóponton található.
- A feladatkövető feladata az előrehaladási jelentés elküldése az álláskövetőnek.
- Ezenkívül a feladatkövető rendszeresen „szívverés” jelet küld a Jobtracker-nek, hogy értesítse őt a rendszer aktuális állapotáról.
- Így az álláskövető nyomon követi az egyes munkák általános előrehaladását. Feladat meghibásodása esetén a jobkövető átütemezheti egy másik feladatkövetőre.