В этом посте собраны шаги, которые я выполнил при настройке кластера Apache Cassandra в нескольких узлах. Я ссылался на документацию Cassandra wiki и Datastax при настройке моего кластера. Следующая процедура подробно изложена, поделившись своим опытом в настройке кластера.
- Настройка первого узла
- Добавление других узлов
- Мониторинг кластера — 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 — это для удовлетворения необходимости визуализации данных внутри кластера. При этом мы можем видеть контент, распределенный по кластеру в одном месте.