Mi a MapReduce a Hadoopban? Építészet - Példa

Tartalomjegyzék:

Anonim

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

MapReduce Architecture

A MapReduce feladat végső eredménye:

rossz 1
Osztály 1
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 formában

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:

  1. Térkép feladatok (rések és térképezés)
  2. 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

  1. Jobtracker : Mesterként viselkedik (felelős a benyújtott munka teljes végrehajtásáért)
  2. 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 .

Hogyan működik a Hadoop MapReduce
  • 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.