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

Установка Apache Cassandra на CentOS 8

5 min read Базы данных Обновлено 19 Oct 2025
Установка Apache Cassandra на CentOS 8
Установка Apache Cassandra на CentOS 8

TL;DR

Коротко: пошаговое руководство по установке Apache Cassandra на CentOS 8 — обновите систему, установите OpenJDK 8 и Python2, добавьте репозиторий DataStax, установите пакет, создайте systemd‑unit, проверьте работу через nodetool и cqlsh, измените имя кластера и примените конфигурацию. В конце — чек-листы, советы по безопасности и распространённые ошибки.

Схема кластера Apache Cassandra на CentOS 8

Apache Cassandra — это отказоустойчивая высокопроизводительная NoSQL СУБД с распределённой архитектурой и репликацией данных. Она подходит для приложений, где недопустима потеря данных. В этом руководстве показано, как установить и настроить Cassandra на CentOS 8.

Важно: минимальные требования — сервер с минимум 2 ГБ оперативной памяти и доступ к root-пользователю.

План установки

  1. Обновить систему.
  2. Установить Java (OpenJDK 8) и Python2.
  3. Добавить репозиторий DataStax и установить Cassandra.
  4. Создать systemd‑unit для сервиса Cassandra.
  5. Запустить сервис и проверить статус (nodetool, cqlsh).
  6. Переименовать кластер и применить конфигурацию.

Требования

  • Сервер с CentOS 8 и минимум 2 ГБ ОЗУ.
  • Доступ root или sudo.
  • Рабочий интернет для загрузки пакетов и репозитория.

Подготовка системы

Обновите систему до актуальных пакетов перед установкой:

dnf update

После обновления рекомендуется перезагрузить систему для применения обновлений.

Установка Java и Python2

Cassandra требует OpenJDK 8 и Python2. Установите их так:

dnf install java-1.8.0-openjdk-devel python2

Проверьте версию Java:

java -version

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

openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

Добавление репозитория и установка Apache Cassandra

Cassandra не входит в стандартные репозитории CentOS 8. Создайте файл репозитория:

nano /etc/yum.repos.d/cassandra.repo

Вставьте внутри:

[cassandra]
name = DataStax Repo for Apache Cassandra
baseurl = http://rpm.datastax.com/community
enabled = 1
gpgcheck = 0

Сохраните файл и установите пакет:

dnf install dsc20

Примечание: пакет dsc20 поставляет сборки DataStax для Apache Cassandra. Если доступен официальный RPM от Apache для вашей версии, можно использовать его.

Создание systemd‑unit для Cassandra

Пакет не всегда создаёт корректный сервис-файл, поэтому создадим его вручную:

nano /etc/systemd/system/cassandra.service

Вставьте следующее:

[Unit]
Description=Apache Cassandra
After=network.target
[Service]
PIDFile=/var/run/cassandra/cassandra.pid
User=cassandra
Group=cassandra
ExecStart=/usr/sbin/cassandra -f -p /var/run/cassandra/cassandra.pid
Restart=always
[Install]
WantedBy=multi-user.target

Сохраните и перезагрузите демон systemd:

systemctl daemon-reload

Запустите и включите сервис при загрузке:

systemctl start cassandra
systemctl enable cassandra

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

systemctl status cassandra

Пример ожидаемого фрагмента вывода (информационный):

? cassandra.service - Apache Cassandra
   Loaded: loaded (/etc/systemd/system/cassandra.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2019-12-07 01:25:26 EST; 1min 51s ago
 Main PID: 1888 (java)
    Tasks: 53 (limit: 25044)
   Memory: 272.7M
   CGroup: /system.slice/cassandra.service
           ??1888 java -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar -XX:+CMSClassUnloadingEnabled -XX:+UseThreadPriorities -XX:Threa>

Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,322 Starting listening for CQL clients on localhost/127.0.0.1:9042...

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

Проверьте состояние узла через 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  46.11 KB   256     100.0%            2a680007-8c30-4bde-9a3f-9fa212b96d11  rack1

Подключение через CQL shell и изменение имени кластера

Запустите cqlsh:

cqlsh

Пример приветствия:

Connected to Test Cluster at localhost:9160.
[cqlsh 4.1.1 | Cassandra 2.0.17 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
Use HELP for help.
cqlsh>

Чтобы изменить имя кластера из консоли CQL:

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

Выйдите из cqlsh:

cqlsh> exit;

Отредактируйте конфигурационный файл Cassandra и укажите новое имя кластера:

nano /etc/cassandra/default.conf/cassandra.yaml

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

cluster_name: 'HowtoForge Cluster'

Сохраните файл. Очистите кэш system и перезапустите сервис:

nodetool flush system
systemctl restart cassandra

Повторно подключитесь в cqlsh и убедитесь, что имя кластера изменилось.

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

  • Сервис cassandra работает и находится в состоянии Active (running).
  • nodetool status показывает узел в состоянии UN и 100% own для одиночного узла.
  • cqlsh подключается и показывает новое имя кластера.
  • Логи в /var/log/cassandra не содержат критичных ошибок за последние 5 минут.

Частые ошибки и способы их решения

  • Java не та версии: убедитесь, что установлена OpenJDK 8. Cassandra старых сборок не совместима с Java 11.
  • Порт 9042/9160 занят: проверьте netstat/ss и остановите процесс, мешающий привязке.
  • Прав доступа к /var/lib/cassandra или /var/run/cassandra: убедитесь, что пользователь cassandra владеет этими каталогами.
  • SELinux/Firewall блокируют порты: временно отключите или настройте правила firewall-cmd и SELinux.

Шпаргалка команд (быстрый доступ)

  • Обновление системы: dnf update
  • Установка Java/Python2: dnf install java-1.8.0-openjdk-devel python2
  • Установка Cassandra: dnf install dsc20
  • Управление сервисом: systemctl start|stop|restart|status cassandra
  • Проверка узла: nodetool status
  • CQL shell: cqlsh
  • Сброс кэша system: nodetool flush system

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

Администратор (в развертывании одного узла):

  • Обновил систему и перезагрузил.
  • Установил OpenJDK 8 и Python2.
  • Добавил репозиторий и установил dsc20.
  • Создал systemd‑unit и включил сервис.
  • Проверил nodetool и cqlsh.

Разработчик/оператор (перед эксплуатацией):

  • Изменил cluster_name и проверил применение.
  • Настроил мониторинг и логирование.
  • Настроил бэкап и стратегию репликации при масштабировании.

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

  • Запускайте Cassandra под непользовательским аккаунтом cassandra (пакет обычно создаёт его автоматически).
  • Настройте firewall-cmd: откройте только нужные порты (9042 для CQL, 7199 для JMX по необходимости, 7000/7001 для межузловых коммуникаций).
  • Настройте резервное копирование снимками (snapshots) и регулярную архивацию данных.
  • Ограничьте доступ к JMX и используйте TLS/SSL для межкластерных соединений при передаче данных через публичные сети.

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

  • Проверьте совместимость версии Cassandra с вашей приложением и драйверами CQL.
  • При миграции с более старых версий убедитесь, что формат SSTable поддерживается или подготовьте процесс конвертации.
  • Cassandra 2.x/3.x и 4.x имеют различия в конфигурации и требованиях к Java; используйте OpenJDK 8 для старых стабильных веток.

Мини‑методология развертывания кластера (коротко)

  1. Разверните минимум 3 узла для продакшн-кластера (рекомендуется для отказоустойчивости).
  2. Настройте репликацию ключевого пространства (replication factor).
  3. Настройте seed-узлы в cassandra.yaml.
  4. Поочерёдно запускайте узлы и проверяйте состояние через nodetool.
  5. Настройте мониторинг (metrics) и бэкапы.

Глоссарий в одну строку

  • CQL — Cassandra Query Language, SQL-подобный язык запросов для Cassandra.
  • nodetool — утилита управления и диагностики узла Cassandra.
  • SSTable — файл хранилища на диске в Cassandra.
  • Seed — начальные адреса узлов, используемые для обнаружения кластера.

Заключение

Вы успешно установили и запустили Apache Cassandra на CentOS 8. Далее рекомендуем подготовить план масштабирования и резервного копирования перед переводом в продакшн. Если нужны подсказки по настройке репликации, seed-узлов или мониторингу — задайте вопрос.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Исправить ошибки Windows 10: 0x80070057 и 0xa0000400
Windows 10

Исправить ошибки Windows 10: 0x80070057 и 0xa0000400

Как удалить проблемные обновления Windows
Windows

Как удалить проблемные обновления Windows

Управление вкладками в Firefox и Chrome
Браузеры

Управление вкладками в Firefox и Chrome

Папка FOUND.000 в Windows 10 — что это и как удалить
Windows

Папка FOUND.000 в Windows 10 — что это и как удалить

Исправить: Windows 8.1 недоступен в регионе
Windows

Исправить: Windows 8.1 недоступен в регионе

Отключение высокого контраста в Windows — как исправить
Windows

Отключение высокого контраста в Windows — как исправить