1

У меня есть два кластера Datastax в облаке Google (две разные учетные записи). Оба кластера имеют разные пространства ключей (данные).Объединение двух кластеров Datastax, которые находятся в Google Cloud

Я хочу объединить оба кластера и хочу использовать оба узла кластера, чтобы справиться с нагрузкой.

Я не хочу импортировать/экспортировать данные. Поскольку обе кластеры малы и не способны обрабатывать нагрузку (хотите объединить кластеры и использовать узлы для обработки нагрузки).

В любом случае мы можем это сделать, либо кластер в облаке, либо нет?

Thanks,

ответ

2

Это выполнимо, но сложно.

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

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

Ваши узлы в обоих кластерах должны иметь общедоступные интерфейсы, чтобы иметь возможность общаться. Я не уверен, как это делается в Google Cloud, но я уверен, что вы можете предоставить публичные интерфейсы своим экземплярам в обеих учетных записях. Затем вы рассматриваете эти два кластера как два разных центра данных в понятии Кассандры, и как только все машины смогут получить доступ к портам Cassandra друг на друга, измените cassandra.yaml на каждом кластере и добавьте к нему другие узлы кластера. Если вы используете файл свойств snitch для управления репликацией, вам необходимо обновить его так, чтобы он распознавал все узлы и их местоположение.

Наконец, выполните скользящий перезапуск и измените коэффициенты репликации ключей, чтобы реплицировать то, что вы хотите.

Обновления: Добавление разъяснений для точки Даниэля Комптона, что, когда включен публичный интерфейс, вам необходимо правильно настроить шифрование для репликации между общедоступными интерфейсами, а также ограничить доступ к этим публичным интерфейсам только к IP-адресам всей вашей кассандры узлы.

Возможно переименование кластера, и я осуществил этот процесс, который раньше работал.

Чтобы переименовать кластер, измените имя кластера в cassandra.yaml. Затем измените таблицу system.local на каждом узле, чтобы отразить это изменение и выполнить скользящий перезапуск. Детали переименования кластера можно найти здесь:

cassandra - Saved cluster name Test Cluster != configured name

+0

Имейте в виду, если вы предоставляете публичные интерфейсы узлам Кассандры, они будут доступны для общественности. Вы можете сделать http://thelastpickle.com/blog/2015/09/30/hardening-cassandra-step-by-step-part-1-server-to-server.html, но, вероятно, лучше разрешить два проекты для доступа к ресурсам друг друга. –

+0

Этот ответ ВЫСОКО подозреваемый. «первым шагом было бы переименование ваших кластеров с тем же именем» - как вы предлагаете пользователю это делать? Я сильно сомневаюсь, что совет действительно возможен. –

+0

Спасибо вам обоим. Я обновил ответ, чтобы отразить ваши комментарии. – Arya

1

Вы не можете присоединиться два кластера вместе с разными именами и различными схемами. Плохие вещи произойдут. Вам нужно будет сделать резервную копию данных с одного, создать пространство ключей в другом, использовать «sstableloader» для потоковой передачи данных и затем загружать новые узлы после факта.

Поскольку вы используете облако, самым простым вариантом является временное добавление нескольких узлов в новый кластер, поток в данных, а затем удаление старых узлов/кластера.Попытка стать умнее и объединить кластеры будет больнее, чем того стоит.

Если вы использовали голый металл и не хотели тратить капитал, чтобы купить больше оборудования, вы МОЖЕТЕ умереть, но в облаке нет реальной причины для этого.