Как установить Apache Cassandra на Ubuntu 18.04 LTS

12 set 2022 5 min di lettura
Как установить Apache Cassandra на Ubuntu 18.04 LTS
Indice dei contenuti

Введение

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

В этой статье мы объясним, как установить Apache Cassandra на Ubuntu.

Предпосылки

В инструкциях предполагается, что вы вошли в систему как root или пользователь с привилегиями sudo.

Если вы намерены установить Apache Cassandra на удаленный сервер, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

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

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Установить Java

На момент написания этой статьи последняя стабильная версия Apache Cassandra — 3.11, для нее требуется OpenJDK 8, которого нет в официальных репозиториях Ubuntu 18.04 LTS.

Включаем репозиторий AdoptOpenJDK и устанавливаем java.

Обновите список пакетов и установите зависимости, необходимые для добавления нового репозитория через HTTPS:

sudo apt update
sudo apt install apt-transport-https ca-certificates wget curl dirmngr gnupg software-properties-common

Импортируйте ключ GPG репозитория и добавьте репозиторий APT AdoptOpenJDK в вашу систему:

wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -
sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/

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

sudo apt update
sudo apt install adoptopenjdk-8-hotspot

После завершения проверьте его, распечатав версию Java:

java -version

Вывод должен выглядеть так:

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

Установить Апач Кассандра

Мы установим Apache Cassandra, используя пакет deb из репозитория поставщика. Для этого вам нужно включить репозиторий Apache Cassandra.

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

echo "deb http://www.apache.org/dist/cassandra/debian 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list

Импортируйте открытый ключ репозитория с помощью следующей команды curl:

curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -

Приведенная выше команда должна ответить OK. Это означает, что ключ был успешно импортирован и пакеты из этого репозитория будут доверенными.

Обновите индекс пакета и установите пакет Apache Cassandra:

sudo apt update

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

GPG error: http://www.apache.org 311x InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A278B781FE4B2BDA

Добавьте открытый ключ Apache Cassandra следующим образом:

sudo apt-key adv --keyserver pool.sks-keyservers.net --recv-key A278B781FE4B2BDA

Затем снова обновите список пакетов:

sudo apt update

На этом этапе вы можете установить Cassandra:

sudo apt install cassandra

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

sudo service cassandra start

Чтобы убедиться, что Cassandra запущена, введите:

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 103.67 KiB 256 100.0% 1d7218c2-6c7f-4287-9695-3d957572cdcf rack1

Если вы получили сообщение об ошибке подключения, откройте следующий файл:

sudo nano /etc/cassandra/cassandra-env.sh

Найдите следующую строку:

...
 JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>"...

Раскомментируйте его и добавьте публичный IP-адрес вашего сервера вместо <public name>.

Сохраните и закройте файл, нажав CTRL + X, затем Y, чтобы сохранить изменения, а затем ENTER, если вы используете nano.

Перезапустите Cassandra с помощью следующей команды:

 sudo service cassandra restart

Чтобы убедиться, что Cassandra запущена, введите:

nodetool status

Это все. Apache Cassandra успешно установлен.

Настроить Apache Cassandra

Данные Apache Cassandra хранятся в каталоге /var/lib/cassandra. Файлы конфигурации находятся в /etc/cassandra, а параметры запуска Java можно настроить в /etc/default/cassandra.

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

Для взаимодействия с Cassandra через командную строку используйте инструмент cqlsh, поставляемый с пакетом Cassandra.

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

Чтобы выйти из оболочки cassandra, введите exit:

exit

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

По умолчанию кластер Cassandra называется «Тестовый кластер». Если вы хотите изменить его, выполните следующие действия:

Доступ к CQL-терминалу Cassandra с помощью cqlsh:

cqlsh

Введите следующую команду, чтобы изменить имя кластера на «Кластер Новиелло»:

UPDATE system.local SET cluster_name = 'Noviello Cluster' WHERE KEY = 'local';

Когда закончите, введите exit, чтобы выйти из терминала:

exit

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

sudo nano /etc/cassandra/cassandra.yaml

Измените параметр cluster_name на желаемое имя:

cluster_name: 'Noviello Cluster'

Очистите системный кеш:

nodetool flush system

Перезапустите службу Cassandra, выполнив:

sudo systemctl restart cassandra

Или с помощью следующей команды:

 sudo service cassandra restart

Включить функции безопасности

Включить аутентификацию для входа пользователя.

Сначала сделайте резервную копию файла конфигурации Cassandra cassandra.yaml:

cp /etc/cassandra/cassandra.yaml /etc/cassandra/cassandra.yaml.backup

Откройте файл конфигурации Cassandra:

sudo nano /etc/cassandra/cassandra.yaml

Сопоставьте следующие переменные в файле со значениями, показанными ниже. Если какие-либо из следующих значений закомментированы, раскомментируйте их. Остальные свойства в файле конфигурации должны быть установлены в соответствии с конкретными требованиями проекта и тем, как вы планируете использовать Cassandra. Конфигурация по умолчанию должна нормально работать для разработки.

...

 authenticator: org.apache.cassandra.auth.PasswordAuthenticator
 authorizer: org.apache.cassandra.auth.CassandraAuthorizer
 role_manager: CassandraRoleManager
 roles_validity_in_ms: 0
 permissions_validity_in_ms: 0...

После редактирования файла перезапустите Cassandra:

 sudo service cassandra restart
nodetool status

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

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

Войдите в командный терминал Cassandra с указанными ниже учетными данными для пользователя по умолчанию «cassandra»:

cqlsh -u cassandra -p cassandra

Создайте нового суперпользователя (superuser). Замените new_user и YOUR_PASSWORD на желаемую информацию:

CREATE ROLE nuovo_utente WITH PASSWORD = 'TUA_PASSWORD' AND SUPERUSER = true AND LOGIN = true;

Выйдите, набрав выход:

exit

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

cqlsh -u nuovo_utente -p TUA_PASSWORD
ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false;

Предоставьте все разрешения новой учетной записи суперпользователя. Замените new_user на имя созданного вами пользователя:

GRANT ALL PERMISSIONS ON ALL KEYSPACES TO nuovo_utente;

Выйдите, набрав выход:

exit

Вывод

Мы показали вам, как установить Apache Cassandra на Ubuntu 18.04 LTS и, при желании, переименовать кластер по умолчанию. Для получения дополнительной информации о начале работы с Cassandra посетите страницу официальной документации.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.