Zookeeper

Apache Zookeeper, Зукипер, Big Data, Большие данные, архитектура, Hadoop, HBase, Kafka, администрирование

Apache  Zookeeper —  open source проект Apache Software Foundation, cервис-координатор, который обеспечивает распределенную синхронизацию небольших по объему данных (конфигурационная информация, пространство имен)  для группы приложений. Zookeeper представляет из себя распределенное хранилище ключ-значение (key-value store), гарантирующий надежное консистентное (consistency)  хранение информации  за счет синхронной репликации между узлами, контроля версий, механизма очередей (queue)  и блокировок (lock). За счет использования оперативной памяти и масштабируемости обладает высокой скоростью 

Сценарии использования Зукипер:

  • Распределенный сервер имен (namespacetopics для Kafka)
  • Распределенная  конфигурация (Hadoop, Kafka)
  • Распределенный членство в группах (распределенные сервисы Kafka, Hadoop)
  • Выбор главного в распределенных системах с арбитражом (Leader election).

Как устроен Apache Zookeeper

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

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

Достоинства и недостатки Зукипер

Ключевыми преимуществами Zookeeper в распределенных Big Data системах считаются следующие:

  • отказоустойчивость кластера;
  • синхронизация распределенных сервисов;
  • автоматическая синхронизация данных;
  • упорядоченность сообщений;
  • транзакционность передачи даннных.

Обратной стороной этих достоинств являются следующие недостатки:

  • зависимость от оперативной памяти узла;
  • избыточное количество серверов;
  • особенности ZAB-протокола синхронизации данных в ансамбле серверов;
  • ограниченность пространства имен и числа потомков каждого узла.

Подробнее, зачем Apache Zookeeper используется в кластерах Hadooop, Kafka и HBase, а также чем можно его заменить, мы писали здесь. А об архитектуре, основных принципах работы и главных проблемах Зукипер читайте в этой статье.

 

 

 

Related Entries