ClickHouse Keeper

Обновлено 8 декабря 2025 г.

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

  1. Создайте виртуальную машину с продуктом clickhouse-keeper (ВМ-КИПЕР) из Yandex Cloud Marketplace по инструкции и с публичным адресом.

  2. После запуска виртуальной машины выполните вход в консоль ВМ-КИПЕР по ssh (открыв доступ к ВМ-КИПЕР по 22 порту, а также 9181 для подключения позднее с ВМ-ТЕСТ через группы безопасности).

  3. На ВМ-КИПЕР через sudo nano /etc/clickhouse-keeper/keeper_config.xml добавьте после

    <clickhouse>
    
    <listen_host>0.0.0.0</listen_host>
    
  4. Проверьте, что keeper запущен sudo systemctl status clickhouse-keeper

  5. Если keeper не запущен в предыдущем шаге, то sudo systemctl start clickhouse-keeper

  6. Создайте еще одну виртуальную машину (ВМ-ТЕСТ) для тестирования работы clickhouse-keeper и подключитесь к ней также по SSH

  7. Установите на ВМ-ТЕСТ clickhouse server и client (https://clickhouse.com/docs/install/debian_ubuntu) (предварительно открыв доступ этой ВМ к входящему траффику через порт 80 TCP и группы безопасности)

  8. Добавьте через sudo nano /etc/clickhouse-server/config.d/zookeeper.xml

    <clickhouse>
        <zookeeper>
            <node>
                <host>IP ВМ-КИПЕР публичный</host>
                <port>9181</port>
            </node>
        </zookeeper>
    </clickhouse>
    
  9. Выполните sudo systemctl start clickhouse-server На ВМ-ТЕСТ

  10. НА ВМ-ТЕСТ выполните clickhouse-client и затем

    SELECT
        hostname() AS clickhouse_server,
        zookeeperSessionUptime() AS keeper_session_seconds
    
  11. На ВМ-КИПЕР проверьте, что sudo ss -anp | grep :9181 показывает соединение с ВМ-ТЕСТ

Если п11 успешен — поздравляем, ваш clickhouse-server на ВМ-ТЕСТ подключен к ВМ-КИПЕР clickhouse-keeper

Тип тарификации
Free
Тип
Виртуальная машина
Категория
Базы данных
Издатель
Yandex Cloud
Примеры использования
  • Координация репликации данных в кластерах ClickHouse
  • Автоматическая дедупликация вставок для реплицируемых таблиц MergeTree
  • Реализация очередей задач с использованием движка таблиц KeeperMap
  • Обеспечение exactly-once доставки в Kafka Connect Sink
  • Отслеживание обработанных файлов в S3Queue
  • Хранение метаданных для Replicated Database
  • Координация создания резервных копий кластера
  • Хранение пользовательских функций и настроек контроля доступа
  • Центральное хранилище метаданных для ClickHouse Cloud
Полезные ссылки
Техническая поддержка

Служба технической поддержки Yandex Cloud отвечает на запросы 24 часа в сутки, 7 дней в неделю. Доступные виды запросов и срок их обработки зависят от тарифного плана. Подключить платную поддержку можно в консоли управления. Подробнее о порядке оказания технической поддержки.

Yandex Cloud не предоставляет техническую поддержку продукта. При возникновении проблем обращайтесь к информационным ресурсам разработчика.

Идентификаторы продукта
image_id:
fd87hpei8uevemfgj91u
family_id:
clickhouse-keeper
Состав продукта
ПОВерсия
Ubuntu24.04
Лицензионное соглашение
Используя данный продукт, вы соглашаетесь с Условиями использования Yandex Cloud Marketplace
Тип тарификации
Free
Тип
Виртуальная машина
Категория
Базы данных
Издатель
Yandex Cloud