Hatena::Groupnlpyutori

(setf yaruki nil)

2010-09-11

なしてMapReduceだけがこんなにもてはやされたのか考える

| 12:28 | はてなブックマーク - なしてMapReduceだけがこんなにもてはやされたのか考える - (setf yaruki nil)

最近某ソーシャルゲームベンダーにてデータ解析部門の相談役みたいなことをしつつコード書いたりソーシャルアプリの企画とかの指針について話したりするというよくわからないことをしている訳ですが、解析部門の中でMapReduceで大規模データ解析!という話が良く出るので専門家でも何でも無いけど資料を作って一時間ぐらいしゃべってきた。そこら辺に溢れているMapReduceの解説記事を流し読みしたことぐらいはある人向け。厳密性はあんまり無いです。

並列分散処理を実現するにはいろんなやり方があるにも関わらず、なんでMapReduce(Hadoop)がコレほどもてはやされたのかと言うことを、並列計算のパラダイムの話を始点としてまとめた。自分のいる業界ではgxpという分散シェルを使うことが多く自分も以前から活用しているのだけれど、それとの比較が軸と成っている。

一応ソーシャルゲーム(ソーシャルアプリ)業界でどんな目的の元でどんなデータを取るべきで、どういうmapタスクとreduceタスクを書いたかということも少しだけ載せてある。環境はAmazon Elastic MapReduceなのでHadoopのありがたみの半分ぐらいは消えてしまっているけれど。

I/Oの負荷分散をするだけならposix準拠の適当な分散FSをマウントして使えばいいんだけどそれとタスクスケジューラが連携していることの嬉しさはきちんと並列処理の話が分かっていないとなかなか説明が難しいところだ。

gxpで大規模データ処理を行う場合のケーススタディとしてはmurawakiさんの記事がとても分かりやすい。gxpの研究をしてる人と一緒に仕事したりしているわけですが、最近はmake一辺倒らしくmake以外での話は開発者以外ではこの人が一番詳しいのではないだろうか(epなんてオプション知らないと言われて少し驚いた)。資料を作る際はこの記事を大いに参考にさせていただいた。