riak map reduce for beginners

12
RiakでのMap/Reduce を学ぶ For Beginner(自分を含む) Riak Source Code Reading@東京 2012/12/11 1 20121213日木曜日

Upload: masahitojp

Post on 06-May-2015

625 views

Category:

Technology


4 download

DESCRIPTION

Riak Source Code Reading@東京 #2

TRANSCRIPT

Page 1: Riak map reduce for beginners

RiakでのMap/Reduce

を学ぶFor Beginner(自分を含む)

Riak Source Code Reading@東京2012/12/11

12012年12月13日木曜日

Page 2: Riak map reduce for beginners

お前誰よ(Who are you?)• @Masahito

• Skeed Inc. 所属

• Erlang初心者

•この発表ではErlangのコードは全く出てきません(`・ω・´)キリッ

22012年12月13日木曜日

Page 3: Riak map reduce for beginners

MapReduceってなに?MapReduce は、巨大なデータセットを持つ高度に並列可能な問題に対して、多数のノードの集合であるクラスターを用いて並列処理させるためのフレームワークである。

(Wikipedia / MapReduceより抜粋)

32012年12月13日木曜日

Page 4: Riak map reduce for beginners

• Map ステップ :

• マスターノードは、入力データを受け取り、それをより細かい単位に分割し、複数のワーカーノードに配置する。そして、各ワーカーノードは、その細かい単位のデータを 処理し、処理結果を、マスターノードへと返す。

• Reduce ステップ:

• 続いて、マスターノードが、Mapステップでの処理結果を集約し、目的としていた問題に対する答え(結果)を何らかの方法によって出力する。

• (WikiPedia/ MapReduceより抜粋)

42012年12月13日木曜日

Page 5: Riak map reduce for beginners

• MapReduceはキーベースでないクエリを実行するためのメソッドとして提供

• HTTP API / protobufs APIから実行可能

Riakではどうなの?

52012年12月13日木曜日

Page 6: Riak map reduce for beginners

RiakでのMapReduce

• Mapは局所的なデータで並行実行

• Reduce はjobを受けたノードで並行実行

• Javascript MapReduce support

• Erlang MapReduce support

62012年12月13日木曜日

Page 7: Riak map reduce for beginners

図で表すとこんな感じ

72012年12月13日木曜日

Page 8: Riak map reduce for beginners

こういうときに有効

• MapReduceしたいObjectがわかっている場合(Bucket-keyのペアがわかっている)

• keyだけではなくオブジェクトまたはその一部をreturnしたい場合

82012年12月13日木曜日

Page 9: Riak map reduce for beginners

こういうのには向かない

• 全バケットのデータを取得して解析したい場合(MapReduceはkeyのリストを使用している。keyのリス

トはクラスタ上で頻繁に使われる箇所に配置されている)

• どれくらい時間がかかるかの予測が必要な場合

92012年12月13日木曜日

Page 10: Riak map reduce for beginners

動作の説明• [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日木曜日

Page 11: Riak map reduce for beginners

参考• [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日木曜日