Создание многоузлового кластера в Cassandra на сервере Ubuntu
Cloud Server, Ubuntu | Комментировать запись
Данное руководство продемонстрирует установку и настройку многоузлового кластера при помощи Cassandra. Cassandra – это открытая система баз данных с высокой масштабируемостью, позволяющая достичь высокой производительности на многоузловых установках (даже если они расположены в разных центрах обработки данных).
Установка Cassandra на каждый узел
Прежде чем приступить к настройке узлов, нужно установить СУБД Cassandra на каждый из них (все необходимые инструкции по установке Cassandra можно найти в отдельном руководстве). Установив СУБД, убедитесь, что она работает должным образом. Закройте Cassandra, набрав:
sudo ps auwx | grep cassandra
Если при этом появляется какой-либо процесс, кроме grep, скопируйте его ID и остановите его.
sudo kill -9 PID
Также необходимо очистить данные, выполнив:
sudo rm -rf /var/lib/cassandra/*
Настройка Cassandra
Чтобы настроить Cassandra для многоузлового кластера, нужно заранее знать, сколько узлов будет содержать этот кластер, и вычислить токены для каждого их них. В интернете можно найти множество специальных инструментов; как правило, нужно просто указать количество узлов, и инструмент выдаст токен для каждого узла. Например, если в кластере 3 узла, токены могут выглядеть так:
Node 0: 0
Node 1: 3074457345618258602
Node 2: 6148914691236517205
Теперь нужно отредактировать конфигурационный файл каждого узла. Для этого откройте текстовый редактор nano:
nano ~/cassandra/conf/cassandra.yaml
В зависимости от потребностей все узлы могут иметь одинаковые (cluster_name, seed_provider, rpc_address и endpoint_snitch) или уникальные (initial_token и listen_address) настройки. Выберите порождающий узел, откройте его конфигурации, найдите в них следующие строки и задайте им необходимое значение:
cluster_name: 'Name'
initial_token: Token
seed_provider:
- seeds: "Seed IP"
listen_address: Server IP
rpc_address: 0.0.0.0
endpoint_snitch: RackInferringSnitch
Замените Name именем кластера, Token – сгенерированным ранее токеном (в соответствии с узлом), Seed IP – IP-адресом порождающего узла, Server IP – IP-адресом выделенного сервера. Повторите данную процедуру для каждого узла. Пример конфигурации кластера из трех узлов:
Node 0
cluster_name: 'MyCluster'
initial_token: 0
seed_provider:
- seeds: "198.211.xxx.0"
listen_address: 198.211.xxx.0
rpc_address: 0.0.0.0
endpoint_snitch: RackInferringSnitch
Node 1
cluster_name: 'MyCluster'
initial_token: 3074457345618258602
seed_provider:
- seeds: "198.211.xxx.0"
listen_address: 192.241.xxx.0
rpc_address: 0.0.0.0
endpoint_snitch: RackInferringSnitch
Node 2
cluster_name: 'MyCluster'
initial_token: 6148914691236517205
seed_provider:
- seeds: "198.211.xxx.0"
listen_address: 37.139.xxx.0
rpc_address: 0.0.0.0
endpoint_snitch: RackInferringSnitch
Для запуска просто введите следующую команду на порождающем узле:
sudo sh ~/cassandra/bin/cassandra
а затем повторите ее на остальных узлах. Если не появилось никаких сообщений об ошибках, значит, многоузловой кластер Cassandra был успешно построен и работает должным образом.
Tags: Apache Cassandra, Cassandra, Cloud Server, Linux, Ubuntu