MapReduceデザインパターン
in-mapper combinerパターン
処理の概要
Mapper ↓ ローカル(各ノード) ----------------------------------------------- ↓ ネットワーク Combiner : Mapperが生成した中間データを削減する。 ↓ Reducer
Mapperから出たデータは、他ノードに、ネット越しにコピーされる。
このデータ転送がボトルネックになって、MapReduceの処理が遅くなる。
だったらMapperで、色々やったらいいんじゃね?
というイメージ。
実現方法としては、大体こんな感じ?
Map<K,V> map; @Override protected void setup(〜) { // ここに初期化処理 map = new Map(); } @Override protected void map(〜) { // map処理 } @Override protected void cleanup(〜) { // 終了処理 // ここで、ローカルで集約したデータを、一気に各ノードへ送る for (Entry entry : map.entrySet()) { context.write(entry.getKey(), entry.getValue()); } }
参考サイト
○ よくまとまってるスライド
○ 原著プレプリント(PDF)
http://www.umiacs.umd.edu/~jimmylin/MapReduce-book-final.pdf
○ Amazon
Hadoop MapReduce デザインパターン ―MapReduceによる大規模テキストデータ処理
- 作者: Jimmy Lin,Chris Dyer,神林飛志,野村直之,玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2011/10/01
- メディア: 大型本
- 購入: 4人 クリック: 254回
- この商品を含むブログ (16件) を見る