Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Následující verze | Předchozí verze Poslední revize Obě strany příští revize | ||
kj:mapreduce [24.08.2017 12:15] kj vytvořeno |
kj:mapreduce [31.08.2017 16:53] kj |
||
---|---|---|---|
Řádek 15: | Řádek 15: | ||
* Ale často nás klíč vůbec nezajímá! Je to třeba offset souboru | * Ale často nás klíč vůbec nezajímá! Je to třeba offset souboru | ||
* Klíč se může libovolně opakovat, hodnota může být různá | * Klíč se může libovolně opakovat, hodnota může být různá | ||
- | * Data jsou na konci setříděna podle klíče (zpravidla, ne vždy) | ||
* Typicky probíhá v mnoha paralelních jobech | * Typicky probíhá v mnoha paralelních jobech | ||
* Každý soubor, resp. split je zpracován samostatným mapperem | * Každý soubor, resp. split je zpracován samostatným mapperem | ||
Řádek 27: | Řádek 26: | ||
* A pak musí data přenést (síť) | * A pak musí data přenést (síť) | ||
* Setřídí data podle klíče (merge) | * Setřídí data podle klíče (merge) | ||
- | * Optimalizace – malá data pošle rovnou do reduceru, velká merguje | + | * Optimalizace – malá data pošle rovnou do reduceru, velká merguje na lokálním disku |
- | na lokálním disku | + | |
* Typicky nejnáročnější operace | * Typicky nejnáročnější operace | ||
Reduce | Reduce | ||
- | * Čte produkovaná pomocí Shuffle & Sort | + | * Čte produkovaná data pomocí Shuffle & Sort |
+ | * všechny dvojice klíč/hodnota se stejným klíčem jdou do stejného reduceru | ||
* „Redukuje“ list hodnot čtených z výstupy Shuffle & Sort | * „Redukuje“ list hodnot čtených z výstupy Shuffle & Sort | ||
* Zpravidla je reducerů (řádově) méně než mapperů | * Zpravidla je reducerů (řádově) méně než mapperů | ||
Řádek 55: | Řádek 54: | ||
* chci znát nějaké specifické rozdělení (např. věkové kategorie) | * chci znát nějaké specifické rozdělení (např. věkové kategorie) | ||
* mám velmi nevyvážené klíče (jeden klíč se vyskytuje abnormálně často) | * mám velmi nevyvážené klíče (jeden klíč se vyskytuje abnormálně často) | ||
+ | * klíče jsou z shuffle&sort poslány do partitioneru, který rozhoduje, do kterého reduceru půjde | ||
+ | * Partitioner je funkce, která hashuje klíč a vezme modulo tohoto hashe a počtu reduceru, aby zjistil, který reducer dostane daný pár klíč-hodnota. jelikož hash jednoho klíče bude pořád stejný, všechny páry klíč-hodnota se stejným klíčem budou poslány do stejného reduceru | ||
kj/mapreduce.txt · Poslední úprava: 18.09.2017 15:50 autor: kj