Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Apache ZooKeeper - это сервер с открытым исходным кодом для высоконадежной распределенной координации облачных приложений. [2] Это проект Apache Software Foundation .

Zookeeper по существу сервис для распределенных систем , предлагающих иерархическое хранилище ключ-значение , которое используется для обеспечения распределенной службы настройки , службы синхронизации и присвоения имен реестра для больших распределенных систем (см случаи использования ). [3] ZooKeeper был подпроектом Hadoop, но теперь сам по себе является проектом верхнего уровня Apache .

Обзор [ править ]

Zookeeper в архитектуре поддерживает высокую доступность за счет избыточных услуг . Таким образом, клиенты могут спросить другого лидера ZooKeeper, если первый не отвечает. Узлы ZooKeeper хранят свои данные в иерархическом пространстве имен, очень похоже на файловую систему или древовидную структуру данных. Клиенты могут читать и записывать на узлы и, таким образом, иметь общую службу конфигурации. ZooKeeper можно рассматривать как атомарную широковещательную систему, через которую полностью заказываются обновления . Протокол ZooKeeper Atomic Broadcast (ZAB) является ядром системы. [4]

ZooKeeper используется такими компаниями, как Yelp , Rackspace , Yahoo! , [5] Одноклассники , Reddit , [6] NetApp SolidFire , [7] Facebook , [8] Twitter [9] и eBay, а также корпоративные поисковые системы с открытым исходным кодом , такие как Solr . [10]

ZooKeeper создан по образцу службы блокировки Google Chubby [11] [12] и первоначально был разработан в Yahoo! для оптимизации процессов, выполняемых в кластерах больших данных, путем сохранения статуса в локальных файлах журнала на серверах ZooKeeper. Эти серверы связываются с клиентскими машинами, чтобы предоставить им информацию. ZooKeeper был разработан для исправления ошибок, возникающих при развертывании распределенных приложений для работы с большими данными.

Некоторые из основных функций Apache ZooKeeper:

  • Надежная система: эта система очень надежна, так как продолжает работать даже при выходе из строя узла.
  • Простая архитектура: Архитектура ZooKeeper довольно проста, поскольку существует разделяемое иерархическое пространство имен, которое помогает координировать процессы.
  • Быстрая обработка: ZooKeeper особенно быстро работает в рабочих нагрузках с преобладанием чтения (т. Е. Рабочих нагрузках, в которых чтение гораздо более распространено, чем запись).
  • Масштабируемость: производительность ZooKeeper может быть улучшена путем добавления узлов.

Архитектура [ править ]

Некоторые общие термины относительно архитектуры ZooKeeper:

  • Узел: системы, установленные в кластере.
  • ZNode: узлы, статус которых обновляется другими узлами в кластере.
  • Клиентские приложения: инструменты, которые взаимодействуют с распределенными приложениями.
  • Серверные приложения: позволяет клиентским приложениям взаимодействовать с помощью общего интерфейса.

Службы в кластере реплицируются и хранятся на наборе серверов (называемых «ансамблем»), каждый из которых поддерживает базу данных в памяти, содержащую все дерево данных состояния, а также журнал транзакций и постоянно хранимые моментальные снимки. К серверу могут подключаться несколько клиентских приложений, и каждый клиент поддерживает TCP-соединение, через которое он отправляет запросы и контрольные сигналы, а также получает ответы и отслеживает события для мониторинга. [13]

Сценарии использования [ править ]

Типичные варианты использования ZooKeeper:

  • Служба именования
  • Управление конфигурацией
  • Синхронизация данных
  • Выборы лидера
  • Очередь сообщений
  • Система оповещения

Клиентские библиотеки [ править ]

В дополнение к клиентским библиотекам, включенным в дистрибутив ZooKeeper, доступен ряд сторонних библиотек, таких как Apache Curator и Kazoo, которые упрощают использование ZooKeeper, добавляют дополнительные функции, дополнительные языки программирования и т. Д.

Проекты Apache с использованием ZooKeeper [ править ]

  • Apache Hadoop
  • Apache Accumulo
  • Apache HBase
  • Apache Hive
  • Апач Кафка
  • Apache Solr
  • Apache Spark
  • Apache NiFi
  • Апач Друид
  • Apache Helix

См. Также [ править ]

  • Hadoop

Ссылки [ править ]

  1. ^ "Apache ZooKeeper - Выпуски" . Проверено 10 декабря 2020 .
  2. ^ "Apache Zookeeper4" . Проверено 31 января 2021 года .
  3. ^ «Указатель - Apache ZooKeeper - Фонд программного обеспечения Apache» . cwiki.apache.org . Проверено 26 августа 2016 .
  4. ^ "Обзор Zookeeper" .
  5. ^ "ZooKeeper / Powered By" . Архивировано из оригинала на 2013-12-09 . Проверено 25 января 2012 .
  6. ^ «Почему Reddit не работал 11 августа» .
  7. ^ «5 больших проблем DaaS и способы их преодоления | NetApp Newsroom» . Отдел новостей NetApp . 2016-06-20 . Проверено 24 мая 2017 .[ постоянная мертвая ссылка ]
  8. ^ «Распределение с учетом местоположения: настройка серверов в масштабе» . Код Facebook . 2018-07-19 . Проверено 20 июля 2018 .
  9. ^ «ZooKeeper в Твиттере» . Технический блог Twitter . 2018-10-11 . Проверено 8 декабря 2018 .
  10. ^ "SolrCloud" .
  11. ^ Берроуз, Майк (2006). «Служба блокировки Chubby для слабосвязанных распределенных систем» . 7-й симпозиум USENIX по проектированию и внедрению операционных систем (OSDI) .
  12. ^ Чандра, Тушар Дипак; Гриземер, Роберт; Редстоун, Джошуа (2007). «Paxos Made Live - инженерная перспектива (приглашенный доклад 2006 г.)» . Google Research . Проверено 3 марта 2020 .
  13. ^ "Zookeeper" .

Внешние ссылки [ править ]

  • Официальный веб-сайт