Как установить базу данных Apache Cassandra NoSQL в кластер Ubuntu 22.04 с одним узлом
Это руководство существует для этих версий ОС
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 16.04 (Xenial Xerus)
На этой странице
- Предпосылки
- Шаг 1. Установите Java
- Шаг 2. Установите Apache Cassandra
- Шаг 3. Проверка службы Cassandra
- Шаг 4. Настройка Cassandra
- 4.1 Включение аутентификации пользователя
- 4.1.1. Добавление суперпользователя-администратора
- 4.2. Редактирование файла конфигурации консоли
- 4.3. Переименование кластера
Apache Cassandra — это система управления распределенной базой данных NoSQL с открытым исходным кодом. Cassandra можно масштабировать по горизонтали, добавляя дополнительные узлы, по которым данные реплицируются автоматически. Узлы могут быть добавлены или удалены без простоев. Узлы можно логически организовать в виде кластера или кольца и настроить в нескольких центрах обработки данных для повышения скорости и надежности высокопроизводительных приложений.
В этом руководстве мы узнаем, как установить Apache Cassandra в кластер Ubuntu 22.04 с одним узлом.
Предпосылки
-
A Server running Ubuntu 22.04 with a minimum of 2GB of RAM.
-
A non-sudo user with root privileges.
-
Everything is updated.
$ sudo apt update && sudo apt upgrade
Шаг 1 — Установите Java
Для работы Apache Cassandra требуется Java 8 или Java 11. Последняя версия Cassandra включает полную поддержку Java 11, которую мы и будем использовать.
$ sudo apt install openjdk-11-jdk
Подтвердите установку Java.
$ 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)
Шаг 2 — Установите Apache Cassandra
Первый шаг — добавить официальный репозиторий Cassandra.
Выполните следующую команду, чтобы добавить репозиторий в список системных репозиториев.
$ echo "deb http://www.apache.org/dist/cassandra/debian 40x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
На момент написания этого руководства последней доступной версией Cassandra была 4.0.5. Приведенная выше команда использует
40x
для представления серии 4.0 Cassandra.Добавьте ключ репозитория в список доверенных системных репозиториев.
$ wget -q -O - https://www.apache.org/dist/cassandra/KEYS | sudo tee /etc/apt/trusted.gpg.d/cassandra.asc
Обновите список системных репозиториев.
$ sudo apt update
Установите Кассандру.
$ sudo apt install cassandra
Шаг 3 - Проверьте службу Cassandra
Cassandra автоматически создает и запускает сервисный демон. Проверить статус услуги.
$ sudo systemctl status cassandra
Вы должны получить следующий вывод.
? cassandra.service - LSB: distributed storage system for structured data Loaded: loaded (/etc/init.d/cassandra; generated) Active: active (running) since Mon 2022-07-25 11:40:42 UTC; 12min ago Docs: man:systemd-sysv-generator(8) Tasks: 48 (limit: 2241) Memory: 1.3G CPU: 38.219s CGroup: /system.slice/cassandra.service ??4602 /usr/bin/java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:+AlwaysPreTouch -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+UseNUMA -> Jul 25 11:40:42 cassandra systemd[1]: Starting LSB: distributed storage system for structured data... Jul 25 11:40:42 cassandra systemd[1]: Started LSB: distributed storage system for structured data.
Вы также можете проверить статус с помощью команды
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
Шаг 4 — Настройте Кассандру
Расположение файлов конфигурации для Cassandra по умолчанию —
/etc/cassandra
. Расположение по умолчанию для каталогов журнала и данных —/var/log/cassandra
и/var/lib/cassandra
.Настройки уровня JVM, такие как размер кучи, можно задать в файле
/etc/cassandra/cassandra-env.sh
. Вы можете передать дополнительные аргументы командной строки JVM в переменнуюJVM_OPTS
. Аргументы передаются Cassandra при ее запуске.4.1 Включить аутентификацию пользователя
Чтобы включить аутентификацию пользователя, первым делом необходимо создать резервную копию файла
/etc/cassandra/cassandra.yaml
.$ sudo cp /etc/cassandra/cassandra.yaml /etc/cassandra/cassandra.yaml.backup
Откройте файл
cassandra.yaml
для редактирования.$ 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 . . .
Вы можете настроить другие параметры в соответствии с вашими требованиями. Если они закомментированы, раскомментируйте их.
После завершения сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.
Перезапустите Cassandra, чтобы активировать измененные настройки.
$ sudo systemctl restart cassandra
4.1.1 - Добавить суперпользователя-администратора
Теперь, когда мы включили аутентификацию, нам нужно создать пользователя. Для этого мы будем использовать утилиту оболочки Cassandra Command. Войдите в систему с учетными данными пользователя по умолчанию
cassandra
.$ cqlsh -u cassandra -p cassandra
Вы получите следующую оболочку.
Connected to Test Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.5 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. >
Создайте нового суперпользователя. Замените
[имя пользователя]
и[вашпароль]
своими учетными данными.> CREATE ROLE [username] WITH PASSWORD = '[yourpassword]' AND SUPERUSER = true AND LOGIN = true;
Выйдите из оболочки.
> exit
Войдите снова с новой учетной записью суперпользователя.
$ 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]';
Выйдите из оболочки.
> exit
4.2 - Отредактируйте файл конфигурации консоли
Если вы хотите настроить оболочку Cassandra, вы можете сделать это, отредактировав файл
cqlshrc
. Расположение файла по умолчанию — каталог~/.cassandra
. Если вы хотите загрузить его из другого каталога, вы можете передать аргумент--cqlshrc /customdirectory
инструментуcqlsh
во время работы. Установка Cassandra по умолчанию не включает файл. Поэтому нам нужно будет его создать.Создайте файл
cqlshrc
в каталоге~/.cassandra
. Нам не нужно использоватьsudo
для выполнения каких-либо функций в каталоге~/.cassandra
. Cassandra требует, чтобы файлы в этом каталоге принадлежали локальной учетной записи и не были доступны из других учетных записей или групп.$ touch ~/.cassandra/cqlshrc
Если каталог
~/.cassandra
отсутствует, создайте его с помощью следующей команды.$ mkdir ~/.cassandra
Откройте файл для редактирования.
$ nano ~/.cassandra/cqlshrc
Репозиторий Cassandra Github содержит образец файла
cqlshrc
. Вы можете скопировать любой или все разделы оттуда в зависимости от ваших потребностей. Все настройки комментируются с помощью;;
. Раскомментируйте их, удалив двойные точки с запятой, а затем внесите изменения в зависимости от ваших потребностей.Мы настроим оболочку для автоматического входа в систему с учетными данными суперпользователя. Замените
[username]
и[password]
учетными данными, созданными на предыдущем шаге..... [authentication] ;; If Cassandra has auth enabled, fill out these options username = [username] password = [password] ....
Отредактируйте любые другие настройки, которые вы хотите изменить. После завершения сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.
Обновите разрешения для файла
cqlshrc
. Это останавливает любую другую группу пользователей от доступа к файлу.$ chmod 600 ~/.cassandra/cqlshrc
Войдите в оболочку Cassandra с вашими новыми изменениями.
$ cqlsh Connected to Test Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.5 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. >
Примечание. Метод хранения имени пользователя и пароля в файле
cqlshrc
станет устаревшим, начиная с версии 4.1 Cassandra. Чтобы узнать больше об этом, вы можете прочитать запись на сайте Cassandras.4.3 - Переименовать кластер
Наконец, мы переименуем имя кластера из Test Cluster в выбранное вами имя.
Войдите в терминал
cqlsh
.$ cqlsh
Замените
[clustername]
новым именем кластера в приведенной ниже команде.> UPDATE system.local SET cluster_name = '[new_name]' WHERE KEY = 'local';
Выйдите из оболочки.
> exit
Откройте файл
/etc/cassandra/cassandra.yaml
для редактирования.$ sudo nano /etc/cassandra/cassandra.yaml
Замените значение переменной
имя_кластера
на имя по вашему выбору.... # The name of the cluster. This is mainly used to prevent machines in # one logical cluster from joining another. cluster_name: '[new_name]' ...
После завершения сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.
Очистите системный кеш Cassandra.
$ nodetool flush system
Перезапустите Кассандру.
$ sudo systemctl restart cassandra
Войдите в оболочку, чтобы увидеть новое имя.
$ cqlsh Connected to howtoforge at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.5 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. >
Заключение
Из этого руководства вы узнали, как установить Apache Cassandra на сервер AlmaLinux или Rocky Linux. Вы также узнали, как добавить аутентификацию пользователя и выполнить некоторые базовые настройки. Чтобы узнать больше, посетите официальную документацию Cassandra. Если у вас есть какие-либо вопросы, задайте их в комментариях ниже.