首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Riak的Mapreduce

使用Riak的Mapreduce
EN

Stack Overflow用户
提问于 2010-01-23 19:40:25
回答 2查看 3.4K关注 0票数 3

有没有人有可以在一个Riak节点上运行的mapreduce for Riak的示例代码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-23 22:42:45

代码语言:javascript
复制
cd ~/riak
erl -name zed@127.0.0.1 -setcookie riak -pa apps/riak/ebin

在shell中:

代码语言:javascript
复制
# connect to the server
> {ok, Client} = riak:client_connect('riak@127.0.0.1').
{ok,{riak_client,'riak@127.0.0.1',<<6,201,208,64>>}}

# create and insert objects
> Client:put(riak_object:new(<<"groceries">>, <<"mine">>, ["eggs", "bacons"]), 1).
ok
> Client:put(riak_object:new(<<"groceries">>, <<"yours">>, ["eggs", "sausages"]), 1).
ok

# create Map and Reduce functions
> Count = fun(G, 'undefined', 'none') ->
            [dict:from_list([{I, 1} || I <- riak_object:get_value(G)])]
          end.
#Fun<erl_eval.18.105910772>
> Merge = fun(Gcounts, 'none') ->
            [lists:foldl(fun(G, Acc) ->
                           dict:merge(fun(_, X, Y) -> X+Y end, G, Acc)
                         end, dict:new(), Gcounts)] 
          end.
#Fun<erl_eval.12.113037538>

# do the map-reduce
> {ok, [R]} = Client:mapred([{<<"groceries">>, <<"mine">>},
                             {<<"groceries">>, <<"yours">>}],
                            [{'map', {'qfun', Count}, 'none', false},
                             {'reduce', {'qfun', Merge}, 'none', true}]).           
{ok,[{dict,...

> dict:to_list(R).
[{"eggs",2},{"susages",1},{"bacons",1}]

对于服务器,我使用了绝对默认的配置:

代码语言:javascript
复制
$ hg clone http://hg.basho.com/riak/
$ cd riak
$ ./rebar compile generate
$ cd rel
$ ./riak/bin/riak start
票数 5
EN

Stack Overflow用户

发布于 2010-03-29 02:01:13

下面是如何使用JavaScript函数执行MapReduce的example

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2123004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档