Ugrás a tartalomhoz

MapReduce

Ellenőrzött
A Wikipédiából, a szabad enciklopédiából

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.

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.

Implementációk

[szerkesztés]

Lásd még

[szerkesztés]