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

Установка Apache Cassandra на Ubuntu 22.04: пошаговая однозвенная инструкция

• 5 min read • Базы данных • Обновлено 27 Nov 2025
Установка Apache Cassandra на Ubuntu 22.04
Установка Apache Cassandra на Ubuntu 22.04

Иллюстрация логотипа Apache Cassandra и схема кластера

О чём эта инструкция

Apache Cassandra — распределённая NoSQL СУБД с горизонтальным масштабированием. В этой инструкции вы установите Cassandra на один сервер Ubuntu 22.04, настроите Java, добавите официальный репозиторий, включите аутентификацию и создадите суперпользователя. Также вы получите рекомендации по безопасности, проверке работоспособности и переходу на многозвенную архитектуру.

Предпосылки

  • Сервер с Ubuntu 22.04 и минимум 2 ГБ оперативной памяти.
  • Пользователь с правами sudo.
  • Система обновлена:
$ sudo apt update && sudo apt upgrade

Шаг 1 — установить Java

Apache Cassandra требует Java 8 или 11. В этой инструкции используется OpenJDK 11.

$ sudo apt install openjdk-11-jdk

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

$ java -version
openjdk 11.0.15 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)

Если версия Java отличается, убедитесь, что Java 11 присутствует в PATH и используется системой по умолчанию.

Шаг 2 — добавить репозиторий и установить Cassandra

Добавьте официальный репозиторий Cassandra в список источников:

$ echo "deb http://www.apache.org/dist/cassandra/debian 40x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list

Добавьте ключ репозитория:

$ wget -q -O - https://www.apache.org/dist/cassandra/KEYS | sudo tee /etc/apt/trusted.gpg.d/cassandra.asc

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

$ sudo apt update
$ sudo apt install cassandra

Примечание: в репозитории используется метка 40x, что соответствует ветке Cassandra 4.0.x.

Шаг 3 — проверить сервис Cassandra

Cassandra создаёт и запускает системный сервис автоматически. Проверьте статус:

$ sudo systemctl status cassandra

Вы также можете получить текущее состояние узла с помощью nodetool:

$ nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens  Owns (effective)  Host ID                               Rack
UN  127.0.0.1  69.08 KiB  16      100.0%            6690243a-950d-4d64-9463-aa722f8064d4  rack1

Если сервис не запущен, просмотрите журналы:

$ sudo journalctl -u cassandra --since "1 hour ago"

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

Файлы конфигурации находятся в /etc/cassandra. Логи — в /var/log/cassandra, данные — в /var/lib/cassandra.

JVM-настройки находятся в /etc/cassandra/cassandra-env.sh. Для изменения кучи отредактируйте JVM_OPTS.

Включить аутентификацию

Сделайте резервную копию конфигурации:

$ sudo cp /etc/cassandra/cassandra.yaml /etc/cassandra/cassandra.yaml.backup

Откройте файл:

$ sudo nano /etc/cassandra/cassandra.yaml

Найдите и замените параметры:

...
authenticator: AllowAllAuthenticator
...
authorizer: AllowAllAuthorizer
...roles_validity_in_ms: 2000
...permissions_validity_in_ms: 2000
...

Измените на:

...
authenticator: org.apache.cassandra.auth.PasswordAuthenticator
...
authorizer: org.apache.cassandra.auth.CassandraAuthorizer
...
roles_validity_in_ms: 0
...
permissions_validity_in_ms: 0
...

Сохраните и перезапустите Cassandra:

$ sudo systemctl restart cassandra

Создать администратора-суперпользователя

Подключитесь к cqlsh под дефолтным пользователем cassandra:

$ cqlsh -u cassandra -p cassandra

В cqlsh создайте нового пользователя-администратора (замените [username] и [yourpassword]):

cassandra@cqlsh> CREATE ROLE [username] WITH PASSWORD = '[yourpassword]' AND SUPERUSER = true AND LOGIN = true;

Выйдите и войдите под новым аккаунтом:

cassandra@cqlsh> exit
$ cqlsh -u username -p yourpassword

Ограничьте доступ у дефолтного cassandra и отзовите права:

username@cqlsh> ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false;
username@cqlsh> REVOKE ALL PERMISSIONS ON ALL KEYSPACES FROM cassandra;

Выдайте все права новому администратору:

username@cqlsh> GRANT ALL PERMISSIONS ON ALL KEYSPACES TO '[username]';
username@cqlsh> exit

Настроить cqlsh

По умолчанию cqlshrc отсутствует. Создайте его в ~/.cassandra и сохраните учётные данные для автоматического входа (обратите внимание на примечание о депрекации):

$ mkdir -p ~/.cassandra
$ touch ~/.cassandra/cqlshrc
$ nano ~/.cassandra/cqlshrc

Пример секции аутентификации (замените [username] и [password]):

[authentication]
;; If Cassandra has auth enabled, fill out these options
username = [username]
password = [password]

Ограничьте права на файл:

$ chmod 600 ~/.cassandra/cqlshrc

Примечание: хранение пароля в cqlshrc планируют устаревшим в версии 4.1. Рассмотрите менеджеры секретов для продакшена.

Переименовать кластер

Войдите в cqlsh:

$ cqlsh

Выполните команду (замените [new_name]):

username@cqlsh> UPDATE system.local SET cluster_name = '[new_name]' WHERE KEY = 'local';
username@cqlsh> exit

Отредактируйте /etc/cassandra/cassandra.yaml и укажите cluster_name:

$ sudo nano /etc/cassandra/cassandra.yaml
cluster_name: '[new_name]'

Сбросьте кеш системы и перезапустите:

$ nodetool flush system
$ sudo systemctl restart cassandra

Проверьте имя при входе в cqlsh.

Шпаргалка команд

  • Установка Java: sudo apt install openjdk-11-jdk
  • Добавление репо Cassandra: echo "deb ... 40x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
  • Установка Cassandra: sudo apt install cassandra
  • Статус сервиса: sudo systemctl status cassandra
  • Проверка узла: nodetool status
  • Перезапуск: sudo systemctl restart cassandra
  • Сохранение данных: nodetool flush
  • Подключение: cqlsh -u username -p password

Блок фактов

  • Минимальные требования: 2 ГБ оперативной памяти для тестирования; для продакшена рекомендуются 8 ГБ и выше.
  • Версии Java: поддерживается OpenJDK 8 и 11. В этом руководстве использован Java 11.
  • Серия Cassandra: инструкции ориентированы на 4.0.x.

Чек-листы по ролям

Администратор (DevOps):

  • Обновить систему.
  • Установить Java и Cassandra.
  • Настроить резервные копии cassandra.yaml.
  • Настроить мониторинг (nodetool, метрики).

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

  • Создать keyspace и таблицы для тестовых данных.
  • Проверить соединение через cqlsh.
  • Написать тестовые запросы и нагрузочные сценарии.

Безопасность и соответствие:

  • Включить аутентификацию и авторизацию.
  • Настроить брандмауэр, ограничив доступ по IP.
  • Хранить пароли в менеджерах секретов.

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

  • Сервис cassandra активен и запущен: systemctl status cassandra показывает active (running).
  • nodetool status показывает узел в состоянии UN с 100% владением токенов в однозвенной конфигурации.
  • Удалось войти в cqlsh под новым суперпользователем.
  • Значение cluster_name соответствует ожидаемому после перезапуска.

Отладка и распространённые проблемы

  • Cassandra не запускается — проверьте логи: sudo journalctl -u cassandra и /var/log/cassandra/system.log.
  • Проблемы с Java — убедитесь, что JAVA_HOME указывает на Java 11 и что java -version возвращает корректную версию.
  • Долгий старт — на машинах с малой памятью Cassandra может долго стартовать; увеличьте heap в cassandra-env.sh.
  • Ошибки аутентификации — проверьте, что authenticator и authorizer правильно заданы и сервис перезапущен.

Безопасность и рекомендации для продакшена

  • Не храните пароли в ~/.cassandra/cqlshrc в продакшене; используйте HashiCorp Vault или другой менеджер секретов.
  • Отключите аккаунт cassandra и не используйте его в окружении с открытым доступом.
  • Ограничьте доступ через брандмауэр (только нужные IP и порты).
  • Настройте TLS для клиентских соединений и межузлового трафика при масштабировании.

Альтернативы и когда Cassandra не подходит

  • Если вам нужна транзакционная согласованность ACID на уровне реляционной БД, рассмотрите PostgreSQL.
  • Для небольших проектов с простой схемой и низкой нагрузкой Cassandra будет избыточной.
  • Если основной фокус на сложных JOIN и отношениях, реляционная СУБД подойдёт лучше.

Переход на многозвенную архитектуру и миграция

  • Для масштабирования добавляйте узлы в кластер; Cassandra автоматически реплицирует данные.
  • Планируйте репликацию и стратегию репликации (SimpleStrategy для теста, NetworkTopologyStrategy для продакшена).
  • Перед добавлением узлов проверьте координатор и схему токенов.

Тестовые сценарии и приёмочные тесты

  • Убедиться, что nodetool status показывает все узлы как Up.
  • Выполнить базовые CRUD-операции через cqlsh и проверить целостность данных.
  • Протестировать восстановление после перезапуска и после удаления/добавления узла (в многозвеной среде).

Советы по мониторингу и SLI/SLO (качественные)

  • Наблюдайте за задержкой записи и чтения; если задержки растут — масштабируйте.
  • Отслеживайте использование памяти JVM и частоту GC.
  • Используйте nodetool для регулярных проверок состояния, а также Prometheus/Grafana для метрик.

Короткое объявление для рассылки (100–200 слов)

Установлена и настроена Apache Cassandra 4.x на Ubuntu 22.04. В руководстве показаны шаги по установке Java 11, добавлению репозитория Apache, включению аутентификации и созданию суперпользователя. Описаны базовые команды проверки состояния, советы по безопасности, чек-листы для ролей и сценарии приёмочных тестов. Эта инструкция предназначена для быстрого развертывания однозвенной среды для разработки и тестирования и содержит рекомендации по переходу на многозвенную продакшен-среду.

Заключение

Вы успешно установили Cassandra на однозвенный узел Ubuntu 22.04, включили аутентификацию, создали администратора и настроили основные параметры. Для продакшена следуйте рекомендациям по безопасности, мониторингу и масштабированию. Официальная документация Cassandra содержит подробности по продвинутым настройкам и архитектуре.

Вопросы и уточнения оставляйте в комментариях или используйте официальную документацию Apache Cassandra для глубокого изучения.

Поделиться: 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 быстро