Java mapreduce и поиск Riak

Я видел примеры для Riak erlang и JS mapreduce. Но я парень JAVA :), люблю делать это в JAVA. Более того, JS mapreduce устарел.

  1. Есть ли способ сделать это на Java? Пожалуйста, дайте образец.
  2. Я также искал Java-образец Riak 2.0 Search.

В документах Riak шаги выглядят огромными для 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

person Raghuveer    schedule 14.11.2016    source источник
comment
eacces является ошибкой posix. Кажется, что требуется разрешение файловой системы. Отметив, что ошибка произошла в rebar_deps:download_source, может показаться, что учетная запись пользователя, выполняющая сборку, либо не имеет разрешения на доступ к исходным файлам, либо не имеет разрешения на запись для создания или записи в каталог deps.   -  person Joe    schedule 16.11.2016
comment
Я использовал только пользователей root, sudo apt-get install * это должно было исправить, не так ли?   -  person Raghuveer    schedule 16.11.2016
comment
Похоже, что ветка разработки в этом клиентском репозитории не работает. Попробуйте собрать из ветки master.   -  person Joe    schedule 17.11.2016
comment
Я попробовал мастер, теперь make прошел нормально, но код: which (riakc_pb_socket). все равно пишет несуществующий. как также удалить erlang-riak-client. Обновлены шаги выше.   -  person Raghuveer    schedule 21.11.2016


Ответы (1)


Код фазы карты и сокращения должен быть либо 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/

person Joe    schedule 14.11.2016
comment
вы смотрели на stackoverflow.com/questions/11543447/? - person Joe; 15.11.2016
comment
Вы также можете проверить ссылки mapreduce на javadoc в нижней части github.com/basho/riak. -java-клиент - person Joe; 15.11.2016
comment
Я знаю эти ссылки, но мне нужно пошаговое описание. У меня тоже нет понимания об erlang. Ссылка, которую вы упомянули, предназначена для ссылок JS и java docs, в ней нет примеров. Есть ли какие-нибудь быстрые туториалы, кроме официального сайта. Также, когда я бежал с docs.basho.com/riak/ kv/2.1.4/developing/usage/mapreduce {ok, Riak} = riakc_pb_socket:start_link(127.0.0.1, 8087). я вижу ошибку исключения: неопределенная функция riakc_pb_socket:start_link/2 - person Raghuveer; 15.11.2016
comment
Эта ошибка означает, что модуль riakc_pb_socket отсутствует в пути вашего кода. На github.com/basho/riak-erlang-client - person Joe; 15.11.2016
comment
Обновлена ​​​​проблема, с которой я сейчас сталкиваюсь, в моем сообщении выше. Когда я звоню make, я вижу эту ошибку - person Raghuveer; 16.11.2016