Я смотрю на кластер cassandra, но усилия по администрированию кажутся довольно высокими. Есть ли способ настроить Cassandra для автоматической перебалансировки узлов по мере добавления новых машин, некоторых из них выключены или временно недоступны и т. Д.?
Кассандра на самом деле автоматически выполняет ребалансировку узлов при добавлении новых; это просто не очень изощренный подход. Он выбирает узел с наибольшей «нагрузкой» (см. Выходные данные кольца nodetool) и помещает новый узел в кольцо, чтобы взять на себя примерно половину работы самого загруженного узла. Это не выполняет перебалансировку кластера в целом, но минимизирует потоковую нагрузку, необходимую для расширения кластера. Эта стратегия автоматической балансировки обычно работает лучше всего, если вы почти удваиваете размер кластера с каждым расширением.
Если вам нужна более тонкая перебалансировка, вы можете переместить положение узла в кольце с помощью команды «nodetool move» (которая на самом деле является оболочкой для вывода из эксплуатации и повторного добавления узла).
Пока нет, поскольку назначение токенов в настоящее время статично. У вас есть выбор сценария балансировки после http://wiki.apache.org/cassandra/Operations#Ring_management или сразу удвоить размер кластера с помощью автозагрузки. Ни один из вариантов в настоящее время не является привлекательным, но добавлять узлы и перемещать токены не так уж и сложно, если у вас будет достаточно времени для миграции данных.
Одна вещь, на которую стоит обратить внимание nodetool loadbalance
не собирается делать то, что вы думаете.