riak map reduce for beginners
DESCRIPTION
Riak Source Code Reading@東京 #2TRANSCRIPT
RiakでのMap/Reduce
を学ぶFor Beginner(自分を含む)
Riak Source Code Reading@東京2012/12/11
12012年12月13日木曜日
お前誰よ(Who are you?)• @Masahito
• Skeed Inc. 所属
• Erlang初心者
•この発表ではErlangのコードは全く出てきません(`・ω・´)キリッ
22012年12月13日木曜日
MapReduceってなに?MapReduce は、巨大なデータセットを持つ高度に並列可能な問題に対して、多数のノードの集合であるクラスターを用いて並列処理させるためのフレームワークである。
(Wikipedia / MapReduceより抜粋)
32012年12月13日木曜日
• Map ステップ :
• マスターノードは、入力データを受け取り、それをより細かい単位に分割し、複数のワーカーノードに配置する。そして、各ワーカーノードは、その細かい単位のデータを 処理し、処理結果を、マスターノードへと返す。
• Reduce ステップ:
• 続いて、マスターノードが、Mapステップでの処理結果を集約し、目的としていた問題に対する答え(結果)を何らかの方法によって出力する。
• (WikiPedia/ MapReduceより抜粋)
42012年12月13日木曜日
• MapReduceはキーベースでないクエリを実行するためのメソッドとして提供
• HTTP API / protobufs APIから実行可能
Riakではどうなの?
52012年12月13日木曜日
RiakでのMapReduce
• Mapは局所的なデータで並行実行
• Reduce はjobを受けたノードで並行実行
• Javascript MapReduce support
• Erlang MapReduce support
62012年12月13日木曜日
図で表すとこんな感じ
72012年12月13日木曜日
こういうときに有効
• MapReduceしたいObjectがわかっている場合(Bucket-keyのペアがわかっている)
• keyだけではなくオブジェクトまたはその一部をreturnしたい場合
82012年12月13日木曜日
こういうのには向かない
• 全バケットのデータを取得して解析したい場合(MapReduceはkeyのリストを使用している。keyのリス
トはクラスタ上で頻繁に使われる箇所に配置されている)
• どれくらい時間がかかるかの予測が必要な場合
92012年12月13日木曜日
動作の説明• [Loading Data and Running MapReduce] (http://docs.basho.com/riak/
latest/tutorials/fast-track/Loading-Data-and-Running-MapReduce-Queries/)の内容を説明
• 主にHTTP APIをcurlでたたくパターンで説明
102012年12月13日木曜日
参考• [MapReduce] http://docs.basho.com/riak/latest/
tutorials/querying/MapReduce/
• [Loading Data and Running MapReduce] http://docs.basho.com/riak/latest/tutorials/fast-track/Loading-Data-and-Running-MapReduce-Queries/
112012年12月13日木曜日
参考• [ひとりでやるRiak Advent Calendar 2012 day6 - MapReduceで遊んでみ
よう] http://kuenishi.hatenadiary.jp/entry/
2012/12/06/224532
122012年12月13日木曜日