Статьи

Запуск Кассандры в многоузловом кластере


В этом посте собраны шаги, которые я выполнил при настройке кластера Apache Cassandra в нескольких узлах.
Я ссылался на документацию Cassandra wiki и Datastax при настройке моего кластера. Следующая процедура подробно изложена, поделившись своим опытом в настройке кластера.
  1. Настройка первого узла
  2. Добавление других узлов
  3. Мониторинг кластера — nodetool , jConsole , Cassandra GUI


Я использовал Cassandra 1.1.0 и Cassandra GUI — версию cassandra-gui-0.8.0-beta1 (поскольку в более раннем выпуске были проблемы с отображением данных) в ОС Ubuntu.

Настройка первого узла

 Open cassandra.yaml which is in 'apache-cassandra-1.1.0/conf'.
Change listen_address: localhost -->  listen_address: <node IP address>
         rpc_address: localhost -->  rpc_address: <node IP address>
- seeds: "127.0.0.1" --> - seeds: "node IP address"

Адрес прослушивания определяет, где должны соединяться другие узлы в кластере.
Таким образом, в многоузловом кластере его следует заменить на идентичный адрес интерфейса Ethernet. 

Адрес rpc определяет, где узел слушает клиентов.
Таким образом, он может совпадать с IP-адресом узла или установить его на подстановочный знак 0.0.0.0, если мы хотим прослушивать Thrift-клиенты на всех доступных интерфейсах.

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

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

- seeds: "<ip1>,<ip2>,<ip3>"

На данный момент давайте перейдем к предыдущей конфигурации с одним семенем.
Теперь мы можем просто запустить Cassandra на этом узле, который будет отлично работать без остальных узлов. Давайте представим, что нашему кластеру нужна повышенная производительность, и в систему поступает больше данных. Настало время добавить еще один узел в кластер.

Добавление других узлов


Просто скопируйте папку Apache Cassandra первого узла в каждый из них.
Теперь замените listen_address: <IP-адрес узла> и rpc_address: <IP-адрес узла> как соответствующие для каждого узла. (Не нужно трогать секцию семян). Теперь, когда мы запускаем каждый узел, он присоединяется к кольцу, используя семена в качестве узлов сети сплетен. В журналах будет отображаться информация, связанная с другими узлами в кластере, как он может видеть.

Мониторинг кластера

Nodetool — поставляется с Apache Cassandra. Мы можем запустить его в папке Cassandra с помощью bin / nodetool. С помощью команды ring nodetool мы можем проверить некоторую информацию о кольце следующим образом.

bin/nodetool -host <node IP address> ring

Он имеет гораздо больше полезных функций, которые можно найти на сайте.

Jconsole Мы можем использовать Тхи S  для использования монитора памяти, поведения потоков и т.д. Это так полезно для анализа кластера подробно и тонкой настройки производительности. Это руководство также содержит полезную информацию об использовании jConsole, если вы с ним еще не знакомы.

Cassandra GUI — это для удовлетворения необходимости визуализации данных внутри кластера. При этом мы можем видеть контент, распределенный по кластеру в одном месте.