MapReduce
Ez a szócikk nem tünteti fel a független forrásokat, amelyeket felhasználtak a készítése során. Emiatt nem tudjuk közvetlenül ellenőrizni, hogy a szócikkben szereplő állítások helytállóak-e. Segíts megbízható forrásokat találni az állításokhoz! Lásd még: A Wikipédia nem az első közlés helye. |
A MapReduce egy programozási modell nagy adathalmazok feldolgozására párhuzamosan és egy szerverfürtön elosztottan.
A MapReduce tartalmaz egy map funkciót, amely szűrést és rendezést végez, valamint egy reduce funkciót, amely összegzi az eredményt. A MapReduce rendszer osztja el a feladatokat a szervereken párhuzamosan futtatva azokat, irányítva minden adatátvitelt, egyúttal hibatűrést is biztosít redundancián keresztül.
A modellt a funkcionális programozásból ismert map és reduce funkciók inspirálták, bár a használatuk nem egészen ugyanaz a MapReduce rendszerben, mint az eredeti formában.
Logikai felépítés
[szerkesztés]Olvasó
[szerkesztés]Az olvasó a bemeneti adatokat megfelelő méretű szeletekre vágja (tipikusan 16 és 128 MB között). Például szöveges állományokat olvashat egy ilyen olvasó komponens és minden sorát egy rekordként adja át.
Map
[szerkesztés]A map funkció kulcs-érték párokat fogad, amiből valamennyi (nulla vagy több) kimenő kulcs-érték párt készít. A bemenő és kimenő értékek típusa lehet különböző és gyakran valóban különböző.
Partícionáló
[szerkesztés]A partíció funkció minden map funkció kimenetet hozzárendeli egy reduce funkció futtatóhoz.
Összehasonlító
[szerkesztés]Minden reduce funkció kimenetét egy összehasonlító funkció segítségével rendezi a Mapreduce rendszer.
Reduce
[szerkesztés]A MapReduce rendszer a reduce funkciót minden kulcsra meghívja egyszer. A reduce funkció iterálhat a kulcshoz rendelt értékeken és generálhat nulla vagy valamennyi kimenetet.
Kimenet író
[szerkesztés]A kimenet író egy perzisztens adattárolóra írja a kimeneti adatokat, ez általában egy elosztott fájlrendszer.
Használat
[szerkesztés]A MapReduce algoritmust számos különböző területen használják, például elosztott minta-alapú keresés, elosztott rendezés, web log statisztika feldolgozás, gépi tanulás. A Google-nél a MapReduce algoritmust használták a világháló indexének felépítésére.