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 -
- Hadoop ökoszisztéma alkatrészek
- MapReduce algoritmusok
- Mi a MapReduce a Hadoopban?
- A MapReduce interjúval kapcsolatos kérdései