我看到了Riak erlang和JS mapreduce的例子。但我是一个JAVA人:),喜欢在JAVA中做到这一点。此外,JS mapreduce已被弃用。
在Riak docs中,riak-search的步骤看起来很大。这可能看起来像mapreduce和搜索的小食谱。可以通过实例步骤进行总结。
问题
我尝试了github中的步骤以下是我看到的:
./rebar get-deps
==> meck (get-deps)
==> protobuffs (get-deps)
==> hamcrest (get-deps)
==> riak_pb (get-deps)
==> riak-erlang-client (get-deps)
./rebar compile
==> meck (pre_compile)
==> meck (compile)
==> protobuffs (pre_compile)
==> protobuffs (compile)
==> hamcrest (pre_compile)
==> hamcrest (compile)
==> hamcrest (post_compile)
==> riak_pb (pre_compile)
==> riak_pb (compile)
==> riak-erlang-client (compile)
raghuveer@ubuntu:~/erlang-git/riak-erlang-client$ erl -pa $PATH_TO_RIAKC/ebin $PATH_TO_RIAKC/deps/*/ebin
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:10] [kernel-poll:false]
Eshell V7.3 (abort with ^G)
1> code:which(riakc_pb_socket).
non_existing
答案 0 :(得分:2)
map和reduce阶段代码必须是erlang或javascript。 您可以在客户端使用java,但是mapreduce代码需要在Riak节点中执行,该节点本身使用erlang并且使用spidermonkey来运行javascript。
有一些预定义的功能可以帮助您从https://github.com/basho/riak_kv/blob/develop/src/riak_kv_mapreduce.erl
开始该文档包含将java与搜索结合使用的示例:https://docs.basho.com/riak/kv/2.1.4/developing/usage/search/