Mi az a MapReduce a Hadoopban? Nagy adat Architectúra
Mi az a MapReduce a Hadoopban?
MapReduce egy szoftver keretrendszer és programozási modell, amelyet hatalmas mennyiségű adat feldolgozására használnak. MapReduce program két fázisban, nevezetesen a Map és Reduce. A térképfeladatok az adatok felosztásával és leképezésével foglalkoznak, míg a Reduce feladatok keverednek és csökkentik az adatokat.
A Hadoop különböző nyelveken írt MapReduce programokat képes futtatni: Java, Ruby, Pythonés C++. A Map Reduce felhőalapú számítástechnikai programjai párhuzamos természetűek, így nagyon hasznosak nagyszabású adatelemzések elvégzésére a fürtben több géppel.
Az egyes fázisok bemenete a kulcs érték párok. Ezenkívül minden programozónak meg kell határoznia két funkciót: térkép funkció és a csökkenti a funkciót.
MapReduce Archia Big Data-ban a példával magyarázott szerkezet
Az egész folyamat a végrehajtás négy fázisán megy keresztül, nevezetesen a felosztáson, a leképezésen, a keverésön és a redukción.
Most ebben a MapReduce oktatóanyagban értsük meg egy MapReduce példával –
Vegye figyelembe, hogy a következő bemeneti adatokkal rendelkezik a MapReduce in Big data program
Welcome to Hadoop Class Hadoop is good Hadoop is bad
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 in Big Data következő fázisain mennek keresztül
Bemeneti felosztások:
A MapReduce in Big Data-feladat bemenete rögzített méretű darabokra van osztva bemenet felosztja A bemeneti felosztás a bemenet azon része, amelyet egyetlen térkép fogyaszt el
Mapping
Ez a legelső fázis a map-redukciós program végrehajtásában. Ebben a fázisban az egyes felosztások adatait egy leképezési függvénynek továbbítják, hogy kimeneti értékeket állítsanak elő. Példánkban a leképezési fázis feladata, hogy megszámolja az egyes szavak előfordulásának számát a bemeneti felosztásokból (a bemeneti felosztással kapcsolatos további részleteket alább találja), és elkészít egy listát
Keverés
Ez a fázis felhasználja a leképezési fázis kimenetét. Feladata a vonatkozó rekordok konszolidálása a Mapping fázis kimenetéből. Példánkban ugyanazok a szavak vannak összevonva a megfelelő gyakoriságukkal együtt.
csökkentő
Ebben a fázisban a Shuffling fázis kimeneti értékei összesítésre kerülnek. Ez a fázis a Keverési fázis értékeit egyesíti, és egyetlen kimeneti értéket ad vissza. Röviden, ez a fázis ö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.
MapReduce Architecture részletesen kifejtve
- Minden felosztáshoz létrejön egy leképezési feladat, amely ezután leképezési funkciót hajt végre a felosztásban lévő minden rekordhoz.
- Mindig előnyös a többszörös felosztás, mert a felosztás feldolgozásához szükséges idő rövid a teljes bemenet feldolgozásához szükséges időhöz képest. Ha a felosztások kisebbek, a feldolgozást jobb kiegyensúlyozottan tölteni, mivel párhuzamosan dolgozzuk fel a felosztásokat.
- Ugyanakkor az sem kívánatos, hogy a hasadások túl kicsik legyenek. Ha a felosztások túl kicsik, a felosztások kezelésének és a leképezési feladatok létrehozásának túlterhelése kezd uralni a teljes feladat-végrehajtási időt.
- A legtöbb munkához jobb, ha egy HDFS-blokk méretével megegyező osztott méretet készít (amely alapértelmezés szerint 64 MB).
- A leképezési feladatok végrehajtása azt eredményezi, hogy a kimenetet a megfelelő csomópont helyi lemezére írják, nem pedig HDFS-re.
- A HDFS helyett a helyi lemez választásának oka a replikáció elkerülése, amely HDFS tároló működése esetén történik.
- 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 feladat csökkentése nem működik az adathelység fogalmán. Minden leképezési feladat kimenete a redukciós feladathoz kerül. A térképkimenet átkerül a gépre, ahol a redukciós feladat fut.
- Ezen a gépen a kimenetet egyesíti, majd átadja a felhasználó által meghatározott csökkentő funkciónak.
- A térképkimenettel ellentétben a redukált kimenetet a rendszer tárolja HDFS (az első replikát a helyi csomópont, a többi replikát pedig a rack nélküli csomópontokon tárolja). Tehát a kimenetcsökkentés írása
Hogyan működik a MapReduce Organizes?
Ebben a MapReduce oktatóanyagban megtudjuk, hogyan működik a MapReduce
Hadoop feladatokra osztja a munkát. Kétféle feladat létezik:
- Térképes feladatok (Felosztás és leképezés)
- Csökkentse a feladatokat (Keverés, kicsinyítés)
fent említett.
A teljes végrehajtási folyamatot (mindkettő a Map és Reduce feladatok végrehajtását) kétféle entitás vezérli, ún.
- Jobtracker: Úgy viselkedik, mint a mester (felelős a beadott munka teljes körű elvégzéséért)
- Több feladatkövető: Úgy viselkedik rabszolgák, mindegyikük elvégzi a feladatot
A rendszerben minden végrehajtásra benyújtott munkához tartozik egy Jobtracker amely azon lakik Namenode és ott vannak több feladatkövető amelyek azon laknak Datanode.
- Egy feladat több feladatra van felosztva, amelyek ezután egy fürt több adatcsomópontján futnak.
- A feladatkö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ővel kell felügyelni, amely a feladat egy részét végrehajtó minden adatcsomóponton található.
- A Task Tracker feladata, hogy elküldje az előrehaladási jelentést a munkakövetőnek.
- Ezenkívül a feladatkövető rendszeresen küld 'szívdobogás' jelezzen a Jobtrackernek, hogy értesítse őt a rendszer aktuális állapotáról.
- Így a job tracker nyomon követi az egyes munkák általános előrehaladását. Feladat meghiúsulása esetén a feladatkövető átütemezheti azt egy másik feladatkövetőre.