Инструкция по установке NoSQL Riak на FreeBSD.

размещено в: Без рубрики | 0

В данном случае производится установка Riak 2.0.2 на FreeSD-9.2.
Обычно описывают установку кластера на одном сервере для тестирования. Установка и настройка кластера на нескольких серверах немного отличается.

Устанавливаем Riak:
sudo pkg_add -r http://s3.amazonaws.com/downloads.basho.com/riak/2.0/2.0.2/freebsd/9.2/riak-2.0.2-FreeBSD-amd64.tbz

Редактируем файл конфигурации:
sudo nano /usr/local/etc/riak/riak.conf

Меняем nodename (если необходимо) на например riak@192.168.0.1 . В listener.http.internal, listener.protobuf.internal я менял IP на 0.0.0.0, что-бы к Riakу можно было подключаться откуда угодно. Можно установить 127.0.0.1 для только локального подключения или IP внешнего интерфейса для подключения только извне.

Добавляем строки ограничивающие используемые порты (необязательно):
erlang.distribution.port_range.minimum = 6000
erlang.distribution.port_range.maximum = 7999

Обеспечиваем автозапуск после перезагрузки:
sudo nano /usr/local/etc/rc.d/riakd
#!/bin/sh
case "$1" in
start)
/usr/local/sbin/riak start
;;
stop)
/usr/local/sbin/riak stop
;;
*)
echo " Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
exit 0

Даём файлу права на запуск:
sudo chmod 555 /usr/local/etc/rc.d/riakd

Добавляем для увеличения максимального количества открытых файлов:
sudo nano /etc/sysct.conf
kern.maxfiles=80000

Повторяем установку на нескольких серверах (можно виртуальных) не забывая прописывать уникальный nodename в riak.conf.

Выбираем один сервер как «главный» (именно в кавычках, так как будем присоединять остальные к нему, но в работе все сервера равнозначные) пусть это будет riak@192.168.0.1.
sudo riak-admin cluster join riak@192.168.0.1 на каждом кроме «главного»

Применяем изменения в кластере:
sudo riak-admin cluster plan<br>sudo riak-admin cluster commit

Смотрим статус клатера:
sudo riak-admin member-status
Получаем что-то вроде:
================================= Membership ==================================
Status Ring Pending Node
-------------------------------------------------------------------------------
valid 34.4% -- 'riak@192.168.0.1'
valid 32.8% -- 'riak@192.168.0.2'
valid 32.8% -- 'riak@192.168.0.3'
-------------------------------------------------------------------------------
Valid:3 / Leaving:0 / Exiting:0 / Joining:0 / Down:0

Если значения Ring сильно отличается отличается от этого примера — значит кластер еще в процессе построения. Вы можете повторять команду и видеть как эти значения меняются. Это занимает не много времени.

Смотрим статус ringа:
sudo riak-admin ring_status
================================== Claimant ===================================
Claimant: 'riak@192.168.0.1'
Status: up
Ring Ready: true
============================== Ownership Handoff ==============================
No pending changes.
============================== Unreachable Nodes ==============================
All nodes are up and reachable

В данном случае кластер не имеет проблем. Если кластер еще не построен или одна из нод недоступна, то здесь будут сообщения об ошибках.

Библиотеки которые я тестировал:
для PHP — https://github.com/php-riak/php_riak
для C — https://github.com/trifork/riack
еще для C — https://github.com/basho/riak-c-client , но её не рекомендую, так как она сильно замороченная и многое надо делать вручную.

Оставить ответ