Apache Cassandra. Начальная настройка

Cassandra_logoПосле установки необходимо заняться настройкой СУБД, поскольку изначально она сконфигурирована в самом базовом варианте, представляющим из себя одноузловой кластер, что нам категорически не подходит. Нас интересует многоузловое решение с несколькими центрами обработки данных. В официальной документации DataStax присутствует пошаговая инструкция по настройке кластера как из одного датацентра, так и из нескольких. Использовать будем последнюю стабильную версию Cassandra, установка которой была рассмотрена в предыдущей статье – Apache Cassandra. Установка.

Начальная настройка 1

Останавливаем демон кассандры:
root@debian7:~# service cassandra stop

Очищаем данные тестового кластера по умолчанию:
root@debian7:~# rm -rf /var/lib/cassandra/data/system/*

Далее необходимо изменить параметры выделения динамической памяти Java.

Сохраним оригинальный скрипт:
root@debian7:~# mv /etc/cassandra/cassandra-env.sh /etc/cassandra/cassandra-env.sh.original
root@debian7:~# cat /etc/cassandra/cassandra-env.sh.original >/etc/cassandra/cassandra-env.sh

Открываем файл для редактирования:
root@debian7:~# nano /etc/cassandra/cassandra-env.sh

Меняем строчки:
MAX_HEAP_SIZE=”1G”
HEAP_NEWSIZE=”200M”
сохраняем изменения и выходим.

Следующий этап – определение настроек в основном конфигурационном файле.

Перед внесением изменений скопируем оригинал:
root@debian7:~# mv /etc/cassandra/cassandra.yaml /etc/cassandra/cassandra.yaml.original

Создадим новый файл с таким же содержанием, кроме большинства строк комментариев:
root@debian7:~# cat /etc/cassandra/cassandra.yaml.original | awk ‘/^[^#]/’ >/etc/cassandra/cassandra.yaml

Открываем файл для редактирования:
root@debian7:~# nano /etc/cassandra/cassandra.yaml

Задаем имя кластера:
cluster_name: ‘testcluster’

Адрес для прослушивания (укажите адрес узла, на котором производите настройку):
listen_address: 192.168.1.81

Дополнительные настройки 2

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

Зададим использование другого осведомителя 3:
endpoint_snitch: PropertyFileSnitch

Выставим адрес для клиентских подключений (укажите адрес узла, на котором производите настройку):
rpc_address: 192.168.1.81

Определим адреса серверов-источников (вообще рекомендуют более одного в каждом центре обработки данных, но у нас будет 4 узла в кластере, а делать всех узлами-источниками категорически запрещается):
– seeds: “192.168.1.81,192.168.1.83”
сохраняем изменения и выходим.

Поскольку мы используем PropertyFileSnitch 4, нам придется заполнить топологию кластера в файле /etc/cassandra/cassandra-topology.properties

Бэкапим оригинальный файл с топологией:
root@debian7:~# mv /etc/cassandra/cassandra-topology.properties /etc/cassandra/cassandra-topology.properties.original

Создаем файл:
root@debian7:~# nano /etc/cassandra/cassandra-topology.properties

нужно вставить следующеее:
192.168.1.81=DC1:RAC1
192.168.1.82=DC1:RAC2
192.168.1.83=DC2:RAC1
192.168.1.84=DC2:RAC2

default=DC1:RAC1
сохраняем изменения и выходим.

Настройка аутентификации 5

Снова заходим в cassandra.yaml:
root@debian7:~# nano /etc/cassandra/cassandra.yaml

Зададим тим аутентификации
authenticator: PasswordAuthenticator
сохраняем изменения и выходим.

На данный момент уже можно запускать демона Cassandra. Начнем с запуска сначала не узлах-распространителях, через пару минут включаем остальные узлы.
root@debian7:~# service cassandra start

Логинимся под стандартным логином и паролем:
root@debian7:~# cqlsh 192.168.1.81 9160 -u cassandra -p cassandra

Создаем нового пользователя:
cqlsh> USE system_auth;
cqlsh:system_auth> CREATE USER testadmin WITH PASSWORD ‘Qwerty123[]’ SUPERUSER;

Попробуем зайти под только что созданным суперадмином (придется выйти из консоли cqlsh и потом снова зайти под дефолтным админом, но в принципе можно дальнейшие задачи выполнить и под новым пользователем) и идем дальше.

Меняем пароль для встроенного суперадмина:
cqlsh:system_auth> ALTER USER cassandra WITH PASSWORD ‘Qwerty123[]Qwerty123[]’;

Увеличим фактор репликации 6 пространства ключей system_auth до количества узлов в каждом датацентре (обратите внимание, что названия датацентров должны соответствовать названиям в файле с топологией, который мы настроили ранее):
cqlsh> ALTER KEYSPACE system_auth WITH REPLICATION ={‘class’ : ‘NetworkTopologyStrategy’, ‘DC1’ : 2, ‘DC2’ : 2};

Запускаем команду
root@debian7:~# nodetool repair

Проверим статус кластера:
root@debian7:~# nodetool status

cassandra configuring 01

Настройка закончена. Дальше нужно будет создать пространства ключей (аналог базы данных в реляционных СУБД) для ваших задач.

Яндекс.Метрика