Поиск по сайту:

Как установить базу данных Apache Cassandra NoSQL в кластер Ubuntu 22.04 с одним узлом


Это руководство существует для этих версий ОС

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 16.04 (Xenial Xerus)

На этой странице

  1. Предпосылки
  2. Шаг 1. Установите Java
  3. Шаг 2. Установите Apache Cassandra
  4. Шаг 3. Проверка службы Cassandra
  5. Шаг 4. Настройка Cassandra
    1. 4.1 Включение аутентификации пользователя
    2. 4.1.1. Добавление суперпользователя-администратора
    3. 4.2. Редактирование файла конфигурации консоли
    4. 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. Если у вас есть какие-либо вопросы, задайте их в комментариях ниже.