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

Установите Apache Cassandra на AlmaLinux 8 | Oracle Linux 8 |


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

Apache Cassandra – это база данных NoSQL с открытым исходным кодом, способная обрабатывать большие объемы неструктурированных типов данных. Этот инструмент был создан как проект с открытым исходным кодом в 2008 и позднее в 2009 принадлежал Apache. Cassandra работает над одноранговой конструкцией, основанной на двух основных продуктах: DynamoDB и Big Table от Google. В этой модели все узлы в кластере имеют равные права на чтение/запись, и главные узлы не требуются. Удивительная особенность Cassandra заключается в том, что можно добавлять в кластер бесконечные узлы и расширять его по своему желанию.

Apache Cassandra предлагает следующие ключевые функции и преимущества:

  • Быстрая запись. Поскольку данные, обрабатываемые здесь, неструктурированы, вы можете просто загружать их в базу данных на смехотворной скорости.
  • Высокая масштабируемость – вы можете добавлять в кластер бесконечное количество узлов в любой момент времени. Cassandra должна расти горизонтально настолько, насколько вам это нужно.
  • Отказоустойчивость. Поскольку все узлы обрабатываются одинаково, выход из строя одного из них не имеет большого значения.
  • Настраиваемая согласованность. Настройка производительности может выполняться поверх обычной настройки производительности JVM. Параметры сжатия на уровне таблицы также можно настроить при создании таблиц.
  • Язык запросов Cassandra. Поскольку Cassandra представляет собой NoSQL, вы можете легче перемещать данные по горизонтали между кластерами, иметь потенциал для масштабной масштабируемости и не подвергаться ограничениям объединений и фиксированных схем.

В этом руководстве представлена пошаговая иллюстрация того, как установить и настроить Apache Cassandra в Alma Linux 8 | Oracle Linux 8.

Шаг 1. Обновите свою систему.

Начните с обновления кеша репозитория и обновления всех пакетов в вашей системе.

sudo dnf update

Теперь установите репозиторий EPEL на Alma Linux 8 | Oracle Linux 8.

sudo dnf install yum-utils
sudo dnf install epel-release

Включите PowerTools, как показано ниже.

sudo dnf config-manager --set-enabled powertools

Шаг 2. Установите Java на Alma Linux 8 | Oracle Linux 8.

Поскольку Apache Cassandra написан на Java, прежде чем продолжить, нам необходимо установить Java в нашей системе. В этом руководстве мы установим OpenJDK 11, чтобы предложить среду выполнения Java, как показано ниже.

sudo dnf install java-11-openjdk

После установки проверьте версию.

$ java --version
openjdk 11.0.14 2022-01-18 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.14+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.14+9-LTS, mixed mode, sharing)

Шаг 3. Добавьте репозиторий Apache Cassandra в Alma Linux 8 | Oracle Linux 8.

Пакеты Cassandra недоступны в репозиториях пакетов Alma Linux 8 | Oracle Linux 8 по умолчанию, поэтому их необходимо добавить. Основное преимущество установки Cassandra из официальных репозиториев заключается в том, что мы гарантируем получение последних обновлений программного обеспечения с помощью простой команды обновления.

Создайте репозиторий, используя ваш любимый редактор.

sudo vi /etc/yum.repos.d/cassandra.repo

В файл добавьте строки:

[cassandra]
name=Apache Cassandra
baseurl=https://downloads.apache.org/cassandra/redhat/40x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.apache.org/cassandra/KEYS

Этот репозиторий относится к версии 4.0, которая на данный момент является последней версией, хотя для Cassandra существуют и более старые версии.

Сохраните файл и обновите индекс пакета.

sudo dnf update -y

Шаг 4. Установите Apache Cassandra на Alma Linux 8 | Oracle Linux 8.

Используя добавленный выше репозиторий, мы можем легко установить последнюю версию Apache Cassandra на Alma Linux 8 | Oracle Linux 8 с помощью команды:

sudo dnf install cassandra 

Дерево зависимостей:

Dependencies resolved.
================================================================================
 Package                        Arch   Version                 Repository  Size
================================================================================
Installing:
 cassandra                      noarch 4.0.2-1                 cassandra   45 M
Installing dependencies:
 java-1.8.0-openjdk-headless-slowdebug
                                x86_64 1:1.8.0.322.b06-2.el8_5 powertools  36 M
 java-1.8.0-openjdk-slowdebug   x86_64 1:1.8.0.322.b06-2.el8_5 powertools 345 k

Transaction Summary
================================================================================
Install  3 Packages

Total download size: 81 M
Installed size: 194 M
Is this ok [y/N]: y

Примите импорт ключа GPG и продолжите установку.

Шаг 5. Запустите и включите службу Cassandra.

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

sudo service cassandra start
sudo systemctl enable cassandra

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

$ systemctl status cassandra
 cassandra.service - LSB: distributed storage system for structured data
   Loaded: loaded (/etc/rc.d/init.d/cassandra; generated)
   Active: active (running) since Wed 2022-02-16 05:16:34 EST; 11s ago
     Docs: man:systemd-sysv-generator(8)
 Main PID: 32646 (java)
    Tasks: 16 (limit: 36433)
   Memory: 1.7G
   CGroup: /system.slice/cassandra.service
           └─32646 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64-slowdebug/jre/bin/java -ea -da:net.openhft... -XX:+UseThrea>

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

nodetool status

Выход :

Шаг 6. Установите язык запросов Cassandra.

Чтобы иметь возможность взаимодействовать с Cassandra, нам нужен инструмент cqlsh, совместимый с Python 2.7 или Python 3.6+. В этом руководстве мы будем использовать Python 3.8, установленный, как показано ниже.

sudo dnf install python38

Если у вас несколько версий. вам может потребоваться установить версию Python по умолчанию, как показано ниже.

$ sudo update-alternatives --config python3
There are 2 programs which provide 'python3'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/bin/python3.6
   2           /usr/bin/python3.8

Enter to keep the current selection[+], or type selection number: 2

Проверьте версию Python.

$ python3 --version
Python 3.8.8

Теперь, используя PIP, установите инструмент cqlsh.

pip3 install --user cqlsh

Пример вывода:

Collecting cqlsh
  Downloading https://files.pythonhosted.org/packages/af/62/88bf9200252158871843a1f65c5215a5480f64817b663ff8ece41ad0f977/cqlsh-6.0.0-py3-none-any.whl (106kB)
     |████████████████████████████████| 112kB 12.3MB/s 
Collecting cql
  Downloading https://files.pythonhosted.org/packages/0b/15/523f6008d32f05dd3c6a2e7c2f21505f0a785b6dc8949cad325306858afc/cql-1.4.0.tar.gz (76kB)
     |████████████████████████████████| 81kB 2.9MB/s 
Collecting six
  Downloading https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl
Collecting cassandra-driver
  Downloading https://files.pythonhosted.org/packages/0b/c6/77ffe96b897a6dbf867847bf1c8ebf72ca9881fffbc08c06a206a33ce1e1/cassandra_driver-3.25.0-cp38-cp38-manylinux1_x86_64.whl (3.6MB)
     |████████████████████████████████| 3.6MB 51.2MB/s 
Collecting thrift
  Downloading https://files.pythonhosted.org/packages/6e/97/a73a1a62f62375b21464fa45a0093ef0b653cb14f7599cffce35d51c9161/thrift-0.15.0.tar.gz (59kB)
     |████████████████████████████████| 61kB 1.8MB/s 
Collecting geomet<0.3,>=0.1
  Downloading https://files.pythonhosted.org/packages/c9/81/156ca48f950f833ddc392f8e3677ca50a18cb9d5db38ccb4ecea55a9303f/geomet-0.2.1.post1-py3-none-any.whl
Collecting click
......

Проверьте установку.

$ cqlsh --version
cqlsh 6.0.0

Шаг 7. Настройте Apache Cassandra в Alma Linux 8 | Oracle Linux 8.

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

7.1. Настроить хранилище

Этот шаг предназначен для тех, кто хочет настроить дополнительный диск в качестве хранилища Apache Cassandra. По умолчанию Apache Cassandra хранит свои данные в /var/lib/cassandra. Однако в этом руководстве мы настроим это хранилище, подключив по этому пути внешний диск для хранения данных.

Сначала определите дополнительное подключенное хранилище.

$ lsblk
NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                  8:0    0   20G  0 disk 
sr0                 11:0    1 1024M  0 rom  
vda                252:0    0   40G  0 disk 
├─vda1             252:1    0    1G  0 part /boot
└─vda2             252:2    0   39G  0 part 
  ├─almalinux-root 253:0    0   35G  0 lvm  /
  └─almalinux-swap 253:1    0    4G  0 lvm  [SWAP]

Здесь дополнительный диск — /dev/sda. Отформатируйте диск в EXT4 с помощью команды mkfs.

sudo mkfs.ext4 /dev/sda

Пример вывода

mke2fs 1.45.6 (20-Mar-2020)
Discarding device blocks: done                            
Creating filesystem with 5242880 4k blocks and 1310720 inodes
Filesystem UUID: 5c3c4032-637b-4e07-9772-83fe0425a6bd
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

Проверьте, создан ли раздел.

$ lsblk -f 
NAME         FSTYPE      LABEL UUID                                   MOUNTPOINT
sda          ext4              5c3c4032-637b-4e07-9772-83fe0425a6bd   
sr0                                                                   
vda                                                                   
├─vda1       xfs               d64815a0-ceaa-42d9-a5c0-075079daf099   /boot
└─vda2       LVM2_member       HH9t2V-12NT-iKyk-sEST-HbsT-Auf1-n14VM1 
  ├─almalinux-root
  │          xfs               7872878f-1b01-4717-97e2-1f045e3685e9   /
  └─almalinux-swap
             swap              dbf263b7-aa5a-44d9-8a19-4c1c7adfa966   [SWAP]

Теперь мы смонтируем этот диск в /var/lib/cassandra, как показано ниже.

sudo cp -r /var/lib/cassandra /var/lib/cassandra.bak
sudo mount /dev/sda /var/lib/cassandra

Проверьте монтаж:

$ df -hT -P /var/lib/cassandra
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sda       ext4   20G   45M   19G   1% /var/lib/cassandra

Восстановите резервную копию и установите правильные разрешения.

sudo mv /var/lib/cassandra.bak/* /var/lib/cassandra
sudo chown -R cassandra:cassandra /var/lib/cassandra

Теперь настройте постоянное крепление, как показано ниже.

$ sudo vim /etc/fstab
/dev/sda /var/lib/cassandra ext4 defaults 0 0

Теперь у нас есть вторичное хранилище, настроенное как хранилище данных Apache Cassandra. Чтобы изменения вступили в силу, перезапустите Cassandra.

sudo systemctl restart cassandra

7.2. Измените имя кластера

После того, как настройки выполнены, переключитесь в CQL Shell с помощью команды:

cqlsh

Пример вывода:

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

Сначала выполните приведенную ниже команду в оболочке CQL.

UPDATE system.local SET cluster_name = 'My CLuster' WHERE KEY = 'local';

Выйдите из оболочки:

exit;

Теперь отредактируйте файл Cassandra ниже.

sudo vi /etc/cassandra/default.conf/cassandra.yaml

Замените имя кластера именем набора, как показано ниже.

# The name of the cluster. This is mainly used to prevent machines in
# one logical cluster from joining another.
cluster_name: 'My CLuster'

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

nodetool flush system
sudo systemctl restart cassandra

Проверьте, были ли внесены изменения.

cqlsh

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

DESC CLUSTER

Пример вывода:

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

Мы начнем с создания резервной копии доступного файла перед его редактированием.

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

Теперь откройте файл:

sudo vi /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
.......

Сохраните файл и перезапустите Кассандру.

sudo systemctl restart cassandra

7.4 . Создайте пользователя-администратора для вашей базы данных.

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

cqlsh -u cassandra -p cassandra

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

CREATE ROLE user1 WITH PASSWORD = 'Passw0rd' AND SUPERUSER = true AND LOGIN = true;

Не забудьте заменить user1 и Passw0rd предпочтительными учетными данными пользователя. После создания выйдите из оболочки.

exit;

Теперь попробуйте войти под созданным пользователем.

cqlsh -u user1 -p Passw0rd

Пример вывода:

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

ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false;

Теперь предоставьте все разрешения созданному пользователю.

GRANT ALL PERMISSIONS ON ALL KEYSPACES TO 'user1';
exit;

7.5. Доступ к Apache Cassandra удаленно.

По умолчанию Apache Cassandra настроен на прослушивание на localhost. Однако вы можете настроить удаленный доступ к нему, внеся изменения в файл конфигурации, как показано ниже.

sudo vi /etc/cassandra/default.conf/cassandra.yaml

В файле внесите следующие изменения:

# For security reasons, you should not expose this port to the internet.  Firewall it if needed.
rpc_address: 192.168.205.3

Сохраните файл и перезапустите Кассандру.

sudo systemctl restart cassandra

Убедитесь, что служба прослушивает установленный IP-адрес:

$ sudo ss -plunt|grep 9042
tcp   LISTEN 0      128     192.168.205.3:9042       0.0.0.0:*    users:(("java",pid=39432,fd=261))  

Разрешите порт через брандмауэр.

sudo firewall-cmd --permanent --add-port=9042/tcp
sudo firewall-cmd --reload

Теперь проверьте соединение на удаленной системе с установленным cqlsh.

cqlsh -u user1 192.168.205.3

Пример вывода:

Вот и все!

Заключительные мысли

Мы триумфально рассмотрели, как установить и настроить Apache Cassandra в Alma Linux 8 | Oracle Linux 8. Кроме того, мы настроили дополнительный диск в качестве хранилища данных Apache Cassandra и включили удаленный доступ. Теперь вы можете продолжить и выполнить горизонтальное масштабирование на Cassandra. Я надеюсь, что это было важно.

Узнать больше:

  • Установите Apache Cassandra на CentOS 8 | Рокки Линукс 8
  • Установите MongoDB 5 на CentOS и RHEL
  • Лучшие книги для изучения баз данных NoSQL и MongoDB
  • Установите базу данных RavenDB NoSQL в Ubuntu

Статьи по данной тематике: