Как установить Apache Cassandra на Rocky Linux 9/8

Apache Cassandra — это масштабируемая высокопроизводительная распределенная база данных, предназначенная для обработки больших объемов данных на множестве стандартных серверов, обеспечивающая высокую доступность без единой точки отказа. Она известна своей надежной поддержкой кластеров, охватывающих несколько центров обработки данных с асинхронной репликацией, обеспечивающей низкую задержку и простоту эксплуатации. Cassandra идеально подходит для приложений, требующих высокой пропускной способности при записи, отказоустойчивости и линейной масштабируемости.

В следующем руководстве будут показаны шаги по установке Apache Cassandra на Rocky Linux 9 или 8 с помощью команд командной строки. Этот процесс включает в себя настройку соответствующего репозитория и настройку вашей системы для обеспечения оптимальной производительности и надежности для вашей среды распределенных баз данных.

Обновите систему Rocky Linux перед установкой Apache Cassandra

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

В вашем терминале выполните следующую команду:.

sudo dnf upgrade --refresh

Импорт репозитория Apache Cassandra

Первый шаг включает импорт репозитория для Apache Cassandra. К счастью, вы можете выполнить это с помощью одной команды. В руководстве будет показано, как импортировать ветви 5.0, 4.0 или 4.1. Поскольку поддержка ветки 3.xx подходит к концу, в руководстве не будет инструкций по их добавлению.

Импорт RPM для Apache Cassandra 4.0

sudo tee /etc/yum.repos.d/cassandra-4.0.repo<<EOF
[cassandra]
name=Apache Cassandra 4.0
baseurl=https://redhat.cassandra.apache.org/41x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.apache.org/cassandra/KEYS
EOF

4.1 Импорт Apache Cassandra RPM

sudo tee /etc/yum.repos.d/cassandra-4.1.repo<<EOF
[cassandra]
name=Apache Cassandra 4.1
baseurl=https://redhat.cassandra.apache.org/41x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.apache.org/cassandra/KEYS
EOF

Импорт RPM Apache Cassandra 5.0

sudo tee /etc/yum.repos.d/cassandra-5.0.alpha.repo<<EOF
[cassandra]
name=Apache Cassandra 5.0
baseurl=https://redhat.cassandra.apache.org/50x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.apache.org/cassandra/KEYS
EOF

Установка Apache Cassandra с помощью команды DNF

Вы можете установить Cassandra с помощью следующей команды; репозиторий был импортирован.

sudo dnf install cassandra -y

Убедитесь в правильности установки версии, выполнив следующую команду:

cassandra -v

Обратите внимание, если вы видите следующую ошибку при импорте ключей GPG.

Key import failed (code 2). Failing package is: cassandra-4.1~alpha1-1.noarch
 GPG Keys are configured as: https://www.apache.org/dist/cassandra/KEYS
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.

Измените политику шифрования и установите для нее значение LEGACY.

sudo update-crypto-policies --set LEGACY

Иногда вам может потребоваться перезагрузка, чтобы это изменение было успешно выполнено. 
Команда перезагрузки:

reboot

Создание службы Apache Cassandra Systemd

После завершения установки вам необходимо создать службу systemd. Опять же, это простая задача; скопируйте и вставьте следующую команду для создания файла.

sudo tee /etc/systemd/system/cassandra.service<<EOF
[Unit]
Description=Apache Cassandra
After=network.target

[Service]
Type=simple
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
EOF

Вы должны перезагрузить демон, чтобы начать использовать службу Cassandra, и вы не можете пропустить этот шаг. Выполните следующую команду:

sudo systemctl daemon-reload

Теперь запустите службу Cassandra.

sudo systemctl start cassandra

Затем проверьте состояние systemctl Cassandra, чтобы убедиться в отсутствии ошибок.

systemctl status cassandra
Apache Cassandra в Rocky Linux
Состояние Systemctl в службе Apache Cassandra в Rocky Linux

При желании вы можете включить автоматический запуск службы Cassandra при запуске вашего компьютера или сервера, используя следующую команду:

sudo systemctl enable cassandra

Установка клиента Apache Cassandra (cqlsh) на Rocky Linux

Установка Python

Перед установкой клиента Cassandra убедитесь, что в вашей системе доступен Python. Клиент Apache Cassandra, cqlsh основан на Python, что делает наличие Python обязательным условием. Установите Python в Rocky Linux, выполнив команду:

sudo dnf install python3 -y

Установка PIP

Затем установите PIP, менеджер пакетов Python, для управления пакетами Python. PIP необходим для установки драйвера Cassandra Python. Если PIP еще не установлен в вашей системе, добавьте его, запустив команду:

sudo dnf install python3-pip -y

Установка драйвера Cassandra Python

Драйвер Cassandra Python необходим для cqlsh подключения к базе данных Cassandra. Этот драйвер обеспечивает связь между клиентом и базой данных. Установите драйвер с помощью PIP с помощью команды:

pip install cassandra-driver

Установка cqlsh

Теперь, когда все необходимые компоненты установлены, вы готовы к установке cqlsh
Этот интерфейс командной строки обеспечивает взаимодействие с Apache Cassandra, позволяя выполнять запросы и управлять вашей базой данных. Установите cqlsh, выполнив команду:

pip install cqlsh
Пример CQLSH, установленного на Rocky Linux
Пример CQLSH, установленного на Rocky Linux

Наконец, подключитесь к cqlsh с помощью следующей команды:

cqlsh

Пример вывода вашего успешного подключения:

[cqlsh 6.1.0 | Cassandra 4.1-alpha1 | CQL spec 3.4.5 | Native protocol v5]
Use HELP for help.
cqlsh> 

Настройка Apache Cassandra

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

Настройка базовой конфигурации

Основные файлы конфигурации для Cassandra находятся в /etc/cassandra
Между тем, журналы и каталоги данных обычно расположены в /var/log/cassandra и /var/lib/cassandra соответственно.

Для настроек на уровне JVM, таких как количество памяти «heap size», вам следует обратиться к файлу /etc/cassandra/conf/cassandra-env.sh . В этом файле вы можете добавить дополнительные аргументы командной строки JVM к JVM_OPTS переменной, которую Cassandra считывает при запуске.

Включение аутентификации пользователя с помощью Apache Cassandra

Перед активацией аутентификации пользователя целесообразно создать резервную копию файла /etc/cassandra/conf/cassandra.yaml :

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

После этого откройте файл cassandra.yaml :

sudo nano /etc/cassandra/conf/cassandra.yaml

В файле вам нужно будет выполнить поиск и изменить эти параметры:

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

Добавление администратора-суперпользователя для Apache Cassandra

Теперь, когда активирована аутентификация, важно настроить пользователя. Используя утилиту командной оболочки Cassandra, войдите в систему, используя учетные данные пользователя по умолчанию:

cqlsh -u cassandra -p cassandra

Создайте нового суперпользователя, заменив [username] и [yourpassword] с учетом ваших особенностей:

CREATE ROLE [username] WITH PASSWORD = '[yourpassword]' AND SUPERUSER = true AND LOGIN = true;

После этого выйдите и повторно войдите в систему, используя свои новые данные суперпользователя:

cqlsh -u username -p yourpassword

Уменьшите повышенные права учетной записи Cassandra по умолчанию:

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

И предоставить полные права вашему суперпользователю:

GRANT ALL PERMISSIONS ON ALL KEYSPACES TO '[username]';

Завершите эту часть выходом из системы.

Настройка конфигурации консоли

Оболочка Cassandra может быть адаптирована к вашим потребностям. Она считывает свою конфигурацию из cqlshrc файла, находящегося в каталоге ~/.cassandra . Пример файла, дающий представление о возможных настройках, находится по адресу /etc/cassandra/conf/cqlshrc.sample.

Начните с копирования этого примера файла:

sudo cp /etc/cassandra/conf/cqlshrc.sample ~/.cassandra/cqlshrc

Настройте права доступа к cqlshrc файлу:

sudo chmod 600 ~/.cassandra/cqlshrc
sudo chown $USER:$USER ~/.cassandra/cqlshrc

Откройте его для редактирования:

nano ~/.cassandra/cqlshrc

Чтобы автоматизировать вход в систему с использованием учетных данных суперпользователя, найдите и отредактируйте следующий раздел:

[authentication]
username = [superuser]
password = [password]

Не забудьте сохранить изменения после завершения редактирования. Теперь, когда вы входите в оболочку Cassandra, в ней будут отражены ваши изменения:

cqlsh

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

Возможно, вы захотите переименовать кластер, чтобы сделать систему более идентифицируемой. Начните с входа в cqlsh терминал:

cqlsh

Замените [new_name] на желаемое имя кластера:

UPDATE system.local SET cluster_name = '[new_name]' WHERE KEY = 'local';

Выйдите из терминала и откройте /etc/cassandra/conf/cassandra.yaml для дальнейшего редактирования:

sudo nano /etc/cassandra/conf/cassandra.yaml

Найдите переменную cluster_name и замените ее значение выбранным вами именем. Сохраните изменения.

Наконец, очистите системный кэш Cassandra командой:

nodetool flush system

Перезапустите Cassandra:

sudo systemctl restart cassandra

Когда вы войдете в командную оболочку, она отобразит выбранное вами имя кластера.

Проверка изменений конфигурации

После внесения изменений в конфигурацию всегда рекомендуется убедиться, что они вступили в силу, и проверить общую работоспособность кластера Cassandra.

Проверка имени кластера: выполненные изменения будут видны при повторном входе в cqlsh оболочку:

cqlsh

Теперь должно отображаться новое заданное имя кластера.

Заключение

В этом руководстве мы рассмотрели шаги по установке Apache Cassandra в Rocky Linux, охватывающие обе версии 9 и 8.  Регулярно проверяйте наличие обновлений, чтобы Cassandra работала хорошо и безопасно. Попрактикуйтесь в использовании Cassandra, чтобы полностью освоить ее функции.