MapReduce
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ésOlvasó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. MapA 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óA partíció funkció minden map funkció kimenetet hozzárendeli egy reduce funkció futtatóhoz. ÖsszehasonlítóMinden reduce funkció kimenetét egy összehasonlító funkció segítségével rendezi a Mapreduce rendszer. ReduceA 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óA kimenet író egy perzisztens adattárolóra írja a kimeneti adatokat, ez általában egy elosztott fájlrendszer. HasználatA 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ókLásd még |