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