MapReduce - paralelní výpočty odolné proti výpadkům
Google zveřejnil popis výpočetního modelu MapReduce (pdf), který již od února 2003 experimentálně využívá. Kromě automatického paralelního zpracování přináší i zvýšenou odolnost proti chybám.
Výhody pro programátora
Vytvořený programátorský model je knihovna napsaná v jazyku C++. Je inspirován LISPem a jeho operacemi map a reduce. Předpokládá, že bude běžet nad systémem Google File System (GFS). Za to, že se programátor smíří pouze se dvěma operacemi dostane hned několik výhod:
- transparentní paralelní zpracování
- odstínění od distribuovaných problémů
- jednodušší kód celého programu
Příklady použití MapReduce
Omezením na tyto dvě operace přitom není omezen algoritmicky. Za pomoci dané knihovny jde řešit široké spektrum algoritmů. např.:
- distribuovaný grep
- analýza logů - četnost URL na které bylo přistupováno
- distribuované třídění
- invertovaný index - pro dokumenty vrátí dvojice (slovo; seznam dokumentů, kde bylo obsaženo)
Technické pozadí Googlu
Dokument také seznamuje čtenáře o technickém zázemí, které Google používá pro své služby:
- využívají se clustery - stovky až tisíce počítačů spojených pomocí přepínaného (switchovaného) ethernetu
- počítače typicky 2 procesorové x68 s nainstalovaným linuxem a 2-4 GB paměti
- síťové spojení na 100Mbit a nebo 1Gbit
- jako úložný prostor jsou použity levné lokální IDE disky (2x160GB) na jednotlivých počítačích
- na počítačích běží distribuovaný souborový systém, který zajišťuje replikaci a spolehlivost na nespolehlivém hardware
- uživatelé přidávají jednotlivé úlohy do plánovače, který je potom spouští na clusteru
Určitě stojí za podrobnější pročtení
Čtenář se seznámí s problémy, které nastaly při implementaci. Dozví se zajímavá technická vylepšení a nahlédne pod pokličku technologie, která je momentálně používána i pro zpracovávání nasbíraných dat do indexu vyhledávače Google. Pokud jsem vás nalákal, tak neváhejte a pusťte se do čtení.
Související:
- David Majda - MapReduce: Výpočetní model Googlu
- Keith Devens - Google Labs Publications: MapReduce
- Ned Batchelder - MapReduce
- Google Labs - MapReduce
Tip: Nevíte čím obdarovat nejbližší? Nechte je napsat Ježíškovi.