MapReduce

A Wikipédiából, a szabad enciklopédiából


A MapReduce egy programozási model 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 modelt 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 | forrásszöveg szerkesztése]

Olvasó[szerkesztés | forrásszöveg szerkesztése]

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ó komponents és minden sorát egy rekordként adja át.

Map[szerkesztés | forrásszöveg szerkesztése]

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önboző és gyakran valóban különböző.

Partícionáló[szerkesztés | forrásszöveg szerkesztése]

A partíció funkció minden map funkció kimenetet hozzárendeli egy reduce funkció futtatóhoz.

Összehasonlító[szerkesztés | forrásszöveg szerkesztése]

Minden reduce funkció kimenetét egy összehasonlító funkció segítségével rendezi a Mapreduce rendszer.

Reduce[szerkesztés | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

A kimenet iró egy perzisztens adattárolóra írja a kimeneti adatokat, ez általában egy elosztott fájlrendszer.

Használat[szerkesztés | forrásszöveg szerkesztése]

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.

Példák[szerkesztés | forrásszöveg szerkesztése]

Implementációk[szerkesztés | forrásszöveg szerkesztése]

Lásd még[szerkesztés | forrásszöveg szerkesztése]

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]