Введение
ClickHouse давно используется как одна из самых быстрых аналитических СУБД для работы с большими объёмами данных. Многие кластеры строились на базе ZooKeeper, который отвечал за координацию реплик. Но в новых версиях появился ClickHouse Keeper — встроенный аналог ZooKeeper, полностью совместимый по протоколу, но более простой в эксплуатации и управлении.
Я недавно прошёл путь обновления боевого кластера ClickHouse и полного отказа от ZooKeeper в пользу ClickHouse Keeper. В этой статье я подробно разберу шаги, примеры конфигураций и нюансы, которые важно учитывать.
Исходная инфраструктура
До миграции у нас было:
-
3 ноды ClickHouse (Ubuntu 16.04.7, ClickHouse 22.2.2.1);
-
Zookeeper 3.4.8, установленный локально на каждой ноде;
-
кластер с репликацией и ~2.2 ТБ данных на сервер.
План миграции
-
Поднять новые ноды на Debian 12 с последним релизом ClickHouse.
-
Добавить новые ноды в существующий кластер и синхронизировать данные.
-
Развернуть и протестировать ClickHouse Keeper.
-
Перенести конфигурацию с ZooKeeper на Keeper.
-
Перевести реплики и вывести старые сервера из эксплуатации.
Настройки ZooKeeper (старый вариант)
В config.xml
на старых нодах ClickHouse была секция:
Настройки ClickHouse Keeper (новый вариант)
Теперь вместо ZooKeeper используем встроенный Keeper.
Пример конфига keeper.xml
:
После этого в config.xml
указываем:
Таким образом, ClickHouse будет подключаться уже к встроенному Keeper.
Пример настройки system.clusters
Файл clusters.xml
(или в config.d/clusters.xml
):
Проверка работы Keeper
-
Проверяем статус Keeper:
-
Проверяем реплики:
-
Проверяем кворум:
Реплицируемая таблица
Пример создания таблицы в кластере:
Итоги миграции
После полного перевода кластера на ClickHouse Keeper мы получили:
-
отказ от отдельного ZooKeeper;
-
упрощённую инфраструктуру (меньше сервисов для поддержки);
-
стабильную репликацию;
-
более простой мониторинг через системные таблицы ClickHouse.
Комментарии
Отправить комментарий