Гид по технологиям

Установка и настройка Riak KV на Ubuntu 18.04 LTS

• 5 min read • Базы данных • Обновлено 21 Nov 2025
Установка Riak KV на Ubuntu 18.04
Установка Riak KV на Ubuntu 18.04

Riak KV — отказоустойчивый распределённый NoSQL‑хранилище. В этой статье подробно показано, как установить, настроить и проверить кластер Riak KV на трёх серверах Ubuntu 18.04. Приведён пошаговый план, команды, критерии приёмки, проверочные тесты и рекомендации по безопасности.

Три узла кластера Riak на серверах Ubuntu

Riak — распределённая NoSQL база данных, ориентированная на высокую доступность, отказоустойчивость и простую эксплуатацию. Riak написан на Erlang и входит в семейство продуктов Basho: Riak KV (ключ‑значение), Riak TS (оптимизация для IoT и временных рядов) и Riak CS (объектное облачное хранилище).

В этом пошаговом руководстве показано, как установить Riak KV на Ubuntu 18.04 LTS и собрать кластер из трёх узлов.

Основные требования

  • 3 сервера на Ubuntu 18.04 или 16.04
    • hakase-riak01 — 10.1.1.10
    • hakase-riak02 — 10.1.1.11
    • hakase-riak03 — 10.1.1.12
  • root или sudo-права на всех узлах
  • базовое знание работы с терминалом и vim

Важно: все команды из разделов установки и базовой настройки выполняйте на каждом узле, если не указано иное.

Что мы сделаем

  1. Установим пакеты Riak KV на каждый сервер
  2. Выполним базовую конфигурацию системы и Riak
  3. Объединим узлы в кластер
  4. Проверим репликацию данных и протестируем отказоустойчивость

Шаг 1 — установка Riak KV

Установка выполняется из репозитория packagecloud и ориентирована на пакеты для Ubuntu Xenial. На каждом сервере выполните:

curl https://packagecloud.io/gpg.key | sudo apt-key add -
sudo apt-get install -y apt-transport-https

Создайте файл репозитория:

cd /etc/apt/sources.list.d/
sudo vim riak.list

Вставьте содержимое:

# this file was generated by packagecloud.io for
# the repository at https://packagecloud.io/basho/riak

deb https://packagecloud.io/basho/riak/ubuntu/ xenial main
deb-src https://packagecloud.io/basho/riak/ubuntu/ xenial main

Обновите индекс пакетов и установите riak:

sudo apt update
sudo apt install riak -y

Дождитесь завершения установки.

Процесс установки Riak на Ubuntu

Примечание:

  • Выполняйте эти команды на всех трёх узлах.

Шаг 2 — базовая конфигурация Riak KV

Перед редактированием конфигурации Riak увеличим лимит открытых файлов для пользователя riak.

Откройте файл /etc/security/limits.conf и добавьте в конец:

riak soft nofile 65536
riak hard nofile 200000

Далее отредактируйте основной конфигурационный файл Riak:

cd /etc/riak/
sudo vim riak.conf

Поменяйте nodename с riak@localhost на riak@ для каждого узла. Например, для hakase-riak02:

nodename = [email protected]

Раскомментируйте и установите параметры планировщика Erlang:

erlang.schedulers.force_wakeup_interval = 500
erlang.schedulers.compaction_of_load = false

Оставьте ring_size равным 64:

ring_size = 64

Измените прослушивание HTTP и protobuf на IP этого сервера. Пример (не забывайте использовать IP текущего узла):

listener.http.internal = 10.1.1.11:8098
listener.protobuf.internal = 10.1.11.11:8087

Важно: проверьте правильность IP и опечаток в адресах (в примере для protobuf может быть опечатка 10.1.11.11). Убедитесь, что указываете реальные IP текущего узла.

Сохраните файл и проверьте конфигурацию, затем запустите сервис:

riak chkconfig
riak start

Проверьте работоспособность:

riak ping
curl -v http://10.1.1.11:8098/types/default/props

Ожидаемые результаты: команда riak ping возвращает pong, curl возвращает HTTP 200.

Проверка работы Riak и ответ pong

Примечание:

  • Все команды конфигурации и проверки также выполняются на каждом узле.

Шаг 3 — создание кластера Riak KV

Объединение узлов выполняется через riak-admin. Мы добавим hakase-riak02 и hakase-riak03 к первому узлу hakase-riak01.

Добавление второго узла

На hakase-riak02 выполните:

riak-admin cluster join [email protected]

На hakase-riak01 выполните:

riak-admin cluster plan
riak-admin cluster commit

Проверьте статус кластера на hakase-riak01:

riak-admin cluster status

Статус кластера после добавления узла

Добавление третьего узла

На hakase-riak03 выполните:

riak-admin cluster join [email protected]

Снова на hakase-riak01 выполните:

riak-admin cluster plan
riak-admin cluster commit

Проверьте статус кластера:

riak-admin cluster status

После этого все три узла должны быть частью кластера. Если в выводе есть незавершённые операции, исправьте их согласно сообщениям riak-admin.

Кластер Riak KV успешно создан

Шаг 4 — тестирование репликации и доступа

Теперь проверим, что данные реплицируются между узлами.

На hakase-riak01 скачайте изображение:

cd ~
wget https://vignette.wikia.nocookie.net/nichijou/images/a/a0/113407.jpg -O hakase.jpg

Загрузите объект в Riak KV с помощью HTTP API:

curl -XPUT http://10.9.9.10:8098/riak/images/hakase.jpg -H 'Content-type: image/jpg' --data-binary @hakase.jpg

Важно: используйте IP одного из узлов в URL. В примере используется 10.9.9.10 — замените на реальный IP вашей первой ноды.

Откройте в браузере адресы других узлов:

Просмотр изображения с узла 2

Если нужно удалить объект:

curl -XDELETE 'http://10.9.9.10:8098/riak/images/hakase.jpg'

Кластер Riak KV на Ubuntu 18.04 настроен и протестирован.

Критерии приёмки

  • Все три ноды находятся в status=running и видимы в riak-admin cluster status
  • riak ping возвращает pong на каждом узле
  • HTTP API /types/default/props возвращает 200
  • Загруженный объект доступен по HTTP с каждого узла

Короткое руководство по отладке и распространённые ошибки

  • riak start не запускается: проверьте логи /var/log/riak/ и права на файлы
  • riak-admin cluster commit не завершён: выполните riak-admin cluster plan, исправьте конфликты и повторите commit
  • Проблемы с сетевыми подключениями: убедитесь, что порты 8098 (HTTP) и 8087 (protobuf) доступны между узлами
  • Неверный nodename: проверьте, что nodename уникален и соответствует IP узла

Команды для диагностики:

sudo journalctl -u riak -f
tail -n 200 /var/log/riak/console.log
riak-admin member-status
riak-admin cluster status

Роль‑ориентированные чек‑листы

Администратор:

  • проверил сетевую связность между узлами
  • увеличил лимиты открытых файлов
  • настроил nodename и listener IP

Операции:

  • проверил состояние кластера после коммитов
  • следит за логами и метриками кластера

Разработчик:

  • тестирует загрузку/получение объектов через HTTP API
  • валидация типов контента и ключей

Мини‑плейбук: восстановление после сбоя узла

  1. Выньте узел из кластера, если он не восстанавливается: riak-admin cluster plan -> удалить узел -> riak-admin cluster commit
  2. Восстановите ОС/сеть на проблемном узле
  3. Заново установите Riak и примените конфигурацию nodename
  4. На восстановленном узле выполните riak-admin cluster join [email protected]
  5. На контролирующем узле выполните riak-admin cluster plan && riak-admin cluster commit
  6. Проверьте статус и репликацию

Тесты и критерии приёмки (Test cases)

  • TC1: riak ping на каждом узле должен вернуть pong
  • TC2: Загрузка объекта на узел A, проверка доступа с узлов B и C
  • TC3: Отключение одного узла, проверка доступности данных через остальные узлы
  • TC4: Восстановление узла и повторная синхронизация данных

Рекомендации по безопасности

  • Разверните Riak в приватной сети или через VPN
  • Ограничьте доступ к портам 8098 и 8087 через firewall (ufw/iptables)
  • Регулярно делайте резервные копии данных и конфигураций
  • Ограничьте SSH доступ по ключам и используйте привилегии least‑privilege

Миграция и совместимость

  • Riak KV 2.x сохраняет свой формат данных; перед миграцией проверьте версии и совместимость модулей
  • Тестируйте все операции записи и чтения на тестовом кластере перед переносом продовых данных

Когда Riak может не подойти

  • Если вам нужны сильные ACID‑транзакции и сложные запросы SQL — Riak не лучший выбор
  • Для очень высокочастотной аналитики и сложных агрегаций лучше рассмотреть специализированные TS/analytics решения

Сводка

  • Установите пакеты на каждом узле, увеличьте лимиты файлов
  • Настройте nodename и listener IP в riak.conf
  • Выполните riak-admin cluster join на добавляемых узлах, затем plan и commit на основном узле
  • Проверьте репликацию через загрузку объекта и доступ к нему с других узлов

Важно: проверяйте все IP и параметры перед запуском cluster commit. Небольшая опечатка в адресах может помешать корректной работе.

Источник и документация:

Примечание:

  • Этот материал служит практическим руководством и содержит команды, которые нужно выполнять с правами администратора.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро