本投稿は Hadoop Advent Calendar 25日目(#hadoopAC12jp)です.現在投稿中のパッチである MAPREDUCE-4502 の内容の日本語資料がないのに気づいたので,その説明をします.
現在取り組み中のパッチの内容
Node-level aggregation は,MapTask 毎に部分集約(Combine処理)を行うための機能です.従来の Combine 処理よりも広い範囲で適用できるため,より高速な処理が可能となります.
設計
MRAppMaster が各ノードを調停して,MapTask にNode-level aggregation を開始するように指示します.Combine 処理は重いので,処理によっては Combine 処理によるデータの圧縮効果よりもオーバヘッドの方が大きくなってしまう場合があります.そこで,現在の設計では,しきい値を超えたら Node-level aggregation を開始するようにしています.また,耐故障性も担保できるように設計しています.
改造箇所
1. Mapper
2. Reducer
2. MRAppMaster(JobTracker)
3. Mapper-MRAppMaster間の Umbilical Protocol
だいたい全部ですね^^;
ユーザからどう見えるか
設計上はフラグで本機能をON/OFF切り替えできるようになっています.最終的には,
conf.enableLocalAggregation();
としたら本機能が有効になるようにする予定です.
ベンチマーク
現在とっている最中なので,乞うご期待^^;
終わりに
現在 Hadoop の標準機能に入れようと取り組んでいる最中の Node-level Aggregation について書きました.
本機能を実装する上で,Hadooper の皆様の声をぜひ聞いておきたいというところが本音です.もし何か要望がありましたら,気軽に @oza_x86 までお気軽にご連絡ください.よろしくお願いします.
No comments:
Post a Comment