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

Установка Apache Cassandra на Ubuntu 22.04

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

Логотип Apache Cassandra или диаграмма репликации

Введение

Apache Cassandra — свободная NoSQL СУБД, спроектированная для работы с большими объёмами данных. Cassandra использует модель репликации в стиле Dynamo: данные хранятся в копиях на нескольких узлах, что обеспечивает высокую доступность и отсутствие единой точки отказа. Cassandra подходит для IoT, аналитики социальных сетей, систем обмена сообщениями и розничных приложений, где собираются большие объёмы данных.

Это руководство объясняет, как установить Apache Cassandra на сервер с Ubuntu 22.04 и выполнить базовую проверку работоспособности.

Требования

  • Сервер под управлением Ubuntu 22.04.
  • Доступ с правами root (или sudo).
  • Подключение к интернету для загрузки пакетов.

Важно: Cassandra официально поддерживает Java 8 — установка других версий Java может привести к ошибкам.

Установка Java 8

Установите OpenJDK 8, так как Cassandra ожидает JVM этой версии:

apt-get install openjdk-8-jdk -y

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

java -version

Ожидаемый пример вывода:

openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

После успешной установки Java можно переходить к добавлению репозитория Cassandra.

Добавление официального репозитория Apache Cassandra

Пакет Cassandra отсутствует в стандартных репозиториях Ubuntu 22.04, поэтому добавим официальный репозиторий Apache.

Установите зависимости:

apt-get install apt-transport-https gnupg2 -y

Импортируйте GPG-ключ проекта:

wget -q -O - https://www.apache.org/dist/cassandra/KEYS | apt-key add -

Добавьте репозиторий:

sh -c 'echo "deb http://www.apache.org/dist/cassandra/debian 311x main" > /etc/apt/sources.list.d/cassandra.list'

Обновите кэш APT:

apt-get update -y

Установка Apache Cassandra

Установите пакет Cassandra:

apt-get install cassandra -y

Проверьте статус службы:

systemctl status cassandra

Пример ожидаемого вывода:

? cassandra.service - LSB: distributed storage system for structured data
     Loaded: loaded (/etc/init.d/cassandra; generated)
     Active: active (running) since Thu 2022-05-05 11:57:22 UTC; 40s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 24707 ExecStart=/etc/init.d/cassandra start (code=exited, status=0/SUCCESS)
      Tasks: 57 (limit: 4630)
     Memory: 1.2G
        CPU: 15.952s
     CGroup: /system.slice/cassandra.service
             ??24800 /usr/bin/java -Xloggc:/var/log/cassandra/gc.log -ea -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -XX:+HeapDumpOn>

May 05 11:57:22 ubuntu2204 systemd[1]: Starting LSB: distributed storage system for structured data...
May 05 11:57:22 ubuntu2204 systemd[1]: Started LSB: distributed storage system for structured data.

Проверка портов (Cassandra слушает стандартные порты CQL и внутренней связи):

ss -antpl | grep java

Пример вывода:

LISTEN 0      500        127.0.0.1:7000       0.0.0.0:*    users:(("java",pid=24800,fd=86))                                                  
LISTEN 0      50         127.0.0.1:45049      0.0.0.0:*    users:(("java",pid=24800,fd=83))                                                  
LISTEN 0      50         127.0.0.1:7199       0.0.0.0:*    users:(("java",pid=24800,fd=82))                                                  
LISTEN 0      4096       127.0.0.1:9042       0.0.0.0:*    users:(("java",pid=24800,fd=100)) 

Как подключиться к Apache 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  70.93 KiB  256          100.0%            eaa94d10-69c6-405d-b7bd-4b3dcbd380be  rack1

Подключитесь к интерактивной оболочке CQL:

cqlsh

Ожидаемый приветственный текст:

Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.12 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh>

Выход из cqlsh:

cqlsh> exit

Изменение имени кластера

По умолчанию имя кластера — Test Cluster. Рекомендуется задать осмысленное имя.

Выполните в cqlsh:

cqlsh

Измените имя кластера в системных метаданных:

cqlsh> UPDATE system.local SET cluster_name = 'Cassandra Cluster' WHERE KEY = 'local';

Выйдите:

cqlsh> exit

Также измените параметр в конфигурационном файле:

nano /etc/cassandra/cassandra.yaml

Найдите и измените строку:

cluster_name: 'Cassandra Cluster'

Сохраните файл, сбросьте кэш и перезапустите службу:

nodetool flush system
systemctl restart cassandra

Проверьте через cqlsh, что имя кластера изменилось:

cqlsh

Ожидаемый вывод:

Connected to Cassandra Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.12 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh>

Отладка и типичные ошибки

  • Служба не запускается: проверьте логи в /var/log/cassandra/*.log и системный журнал systemd.
  • Ошибки JVM: убедитесь, что установлена именно Java 8 и что $JAVA_HOME корректно настроен.
  • Порт 9042 недоступен: проверьте локальный Firewall (ufw/iptables) и настройки bind-address в cassandra.yaml.
  • nodetool показывает DOWN: проверьте сетевую доступность и время (несинхронизированное системное время может мешать кластеру).

Важно: всегда проверяйте журналы Cassandra перед удалением данных или повторной установкой.

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

  • Измените учетные данные администратора и настройте авторизацию (по умолчанию авторизация может быть выключена).
  • Ограничьте доступ к портам Cassandra (7000, 7199, 9042) через firewall — разрешайте доступ только из доверенных сетей.
  • Включите TLS для внутренней связи узлов и клиентских соединений при работе в продуктивном окружении.
  • Регулярно делайте бэкапы и тестируйте восстановление.

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

  • Установка из бинарного архива (tarball) с официального сайта Apache — даёт больше контроля над версиями и путями, полезно для продакшн-кластеров.
  • Установка через контейнеры Docker — быстрее для тестирования и CI, но требует настройки персистентного хранилища.
  • Менеджеры конфигураций (Ansible/Chef/Puppet) для автоматического развёртывания многозвенного кластера.

Когда не подходит: для простых ключ-значение задач с небольшими данными и требованием ACID лучше подойдут реляционные СУБД или другие хранилища.

Мини-методология развёртывания многозвенного кластера

  1. Планирование сети: выделите IP-диапазоны и настройки firewall.
  2. Синхронизация времени на всех узлах (NTP).
  3. Установка Java 8 и Cassandra на каждый узел по одинаковой версии.
  4. Настройка cassandra.yaml: cluster_name, seeds, listen_address, rpc_address, endpoint_snitch.
  5. Поэтапный запуск узлов: сначала seed-узлы, затем остальные.
  6. Мониторинг состояния (nodetool status), SLI/SLO и резервное копирование.

Рольные чек-листы

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

  • Установить Java 8 и Cassandra.
  • Настроить firewall и TLS.
  • Настроить мониторинг и бэкапы.

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

  • Подключиться через cqlsh и проверить CQL-запросы.
  • Проверить модели данных на соответствие распределённой архитектуре (моделировать под чтение).

Оператор DevOps:

  • Автоматизировать развёртывание (Ansible/Helm).
  • Настроить логирование и алерты.

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

  • Служба cassandra активна и работает (systemctl active).
  • Узел в статусе UN в nodetool status.
  • Порт 9042 слушается и на него можно подключиться через cqlsh.
  • Изменённое имя кластера отражается в cqlsh.

1-строчный глоссарий

  • CQL: Cassandra Query Language — язык запросов Cassandra.
  • nodetool: утилита администрирования Cassandra.
  • seed: начальные узлы, используемые при старте кластера для обнаружения других узлов.

Итог

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

Важно: при переходе к кластерной эксплуатации тестируйте резервное копирование и восстановление на тестовой среде.

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