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