ClickHouse Keeper
ClickHouse Keeper представляет собой полнофункциональную замену Apache ZooKeeper, разработанную специально для координации и управления кластерами ClickHouse. Решение обеспечивает полную совместимость с клиентским протоколом ZooKeeper и использует ту же модель данных, предлагая при этом значительные улучшения в производительности и функциональности.
Основные преимущества ClickHouse Keeper:
Упрощенная установка и эксплуатация:
- Реализован на языке C++ вместо Java, что обеспечивает более эффективное использование ресурсов
- Может работать как встроенным в ClickHouse, так и в автономном режиме
- Использует меньше памяти для того же объема данных по сравнению с ZooKeeper
Оптимизированное хранение данных:
- Снимки состояния и логи занимают значительно меньше дискового пространства благодаря улучшенному сжатию
- Отсутствует ограничение на размер пакета и данных узла по умолчанию (в ZooKeeper ограничение составляет 1 МБ)
- Нет проблемы переполнения ZXID, которая в ZooKeeper требует перезапуска каждые 2 миллиарда транзакций
Повышенная производительность и надежность:
- Более быстрое восстановление после сетевых разделений благодаря использованию улучшенного протокола распределенного консенсуса
- Дополнительные гарантии консистентности: обеспечивает те же гарантии консистентности, что и ZooKeeper (линеаризуемые записи и строгий порядок операций в рамках одной сессии)
- Опционально предоставляет линеаризуемые чтения через настройку quorum_reads
Ключевые функции координации:
ClickHouse Keeper выполняет критически важные функции в экосистеме ClickHouse:
- Обеспечивает систему координации для репликации данных в самоуправляемых кластерах ClickHouse
- Осуществляет автоматическую дедупликацию вставок для реплицируемых таблиц семейства движков MergeTree на основе хеш-сумм блоков
- Предоставляет консенсус для имен частей и назначения слияний частей и мутаций конкретным узлам кластера
- Используется движком таблиц KeeperMap, который позволяет использовать Keeper как консистентное хранилище ключ-значение
- Отслеживает обработанные файлы в движке таблиц S3Queue
- Хранит все метаданные движка Replicated Database
- Координирует создание резервных копий с использованием конструкции ON CLUSTER
- Служит хранилищем для пользовательских функций и информации контроля доступа
- Используется как общее центральное хранилище для всех метаданных в ClickHouse Cloud
ClickHouse Keeper представляет собой надежное и эффективное решение для координации распределенных систем, специально оптимизированное для работы с ClickHouse.
в случае прод окружения не стоит использовать адрес 0.0.0.0
-
Создайте виртуальную машину с продуктом clickhouse-keeper (ВМ-КИПЕР) из Yandex Cloud Marketplace по инструкции и с публичным адресом.
-
После запуска виртуальной машины выполните вход в консоль ВМ-КИПЕР по ssh (открыв доступ к ВМ-КИПЕР по 22 порту, а также 9181 для подключения позднее с ВМ-ТЕСТ через группы безопасности).
-
На ВМ-КИПЕР через
sudo nano /etc/clickhouse-keeper/keeper_config.xmlдобавьте после<clickhouse> <listen_host>0.0.0.0</listen_host> -
Проверьте, что keeper запущен
sudo systemctl status clickhouse-keeper -
Если keeper не запущен в предыдущем шаге, то
sudo systemctl start clickhouse-keeper -
Создайте еще одну виртуальную машину (ВМ-ТЕСТ) для тестирования работы clickhouse-keeper и подключитесь к ней также по SSH
-
Установите на ВМ-ТЕСТ clickhouse server и client (https://clickhouse.com/docs/install/debian_ubuntu) (предварительно открыв доступ этой ВМ к входящему траффику через порт 80 TCP и группы безопасности)
-
Добавьте через
sudo nano /etc/clickhouse-server/config.d/zookeeper.xml<clickhouse> <zookeeper> <node> <host>IP ВМ-КИПЕР публичный</host> <port>9181</port> </node> </zookeeper> </clickhouse> -
Выполните
sudo systemctl start clickhouse-serverНа ВМ-ТЕСТ -
НА ВМ-ТЕСТ выполните
clickhouse-clientи затемSELECT hostname() AS clickhouse_server, zookeeperSessionUptime() AS keeper_session_seconds -
На ВМ-КИПЕР проверьте, что
sudo ss -anp | grep :9181показывает соединение с ВМ-ТЕСТ
Если п11 успешен — поздравляем, ваш clickhouse-server на ВМ-ТЕСТ подключен к ВМ-КИПЕР clickhouse-keeper
- Координация репликации данных в кластерах ClickHouse
- Автоматическая дедупликация вставок для реплицируемых таблиц MergeTree
- Реализация очередей задач с использованием движка таблиц KeeperMap
- Обеспечение exactly-once доставки в Kafka Connect Sink
- Отслеживание обработанных файлов в S3Queue
- Хранение метаданных для Replicated Database
- Координация создания резервных копий кластера
- Хранение пользовательских функций и настроек контроля доступа
- Центральное хранилище метаданных для ClickHouse Cloud
Служба технической поддержки Yandex Cloud отвечает на запросы 24 часа в сутки, 7 дней в неделю. Доступные виды запросов и срок их обработки зависят от тарифного плана. Подключить платную поддержку можно в консоли управления. Подробнее о порядке оказания технической поддержки.
Yandex Cloud не предоставляет техническую поддержку продукта. При возникновении проблем обращайтесь к информационным ресурсам разработчика.