Підручник ZooKeeper: Що таке, Archiтектура Apache ZooKeeper

Що таке розподілена система?

Розподілена програма – це програма, яка може працювати на кількох системах у мережі. Він працює одночасно, координуючи себе для виконання певного завдання. Для виконання цих завдань будь-яким нерозповсюдженим додатком може знадобитися багато годин.

Що таке Zookeeper?

Apache Zookeeper це розподілена координаційна служба з відкритим кодом, яка допомагає керувати великою кількістю хостів. Управління та координація в розподіленому середовищі складні. Zookeeper автоматизує цей процес і дозволяє розробникам зосередитися на створенні функцій програмного забезпечення, а не турбуватися про його розподілену природу.

Zookeeper допомагає вам підтримувати інформацію про конфігурацію, іменування, групові служби для розподілених програм. Він реалізує різні протоколи в кластері, тому програма не повинна реалізовувати їх самостійно. Він забезпечує єдине узгоджене уявлення про декілька машин.

Чому Apache Zookeeper?

Ось важливі причини популярності Zookeeper:

  • Це дозволяє взаємне виключення та співпрацю між серверними процесами
  • Це гарантує послідовну роботу вашої програми.
  • Процес транзакції ніколи не завершується частково. Йому надається статус «Успіх» або «Невдача». Розподілений стан можна затримати, але він ніколи не помиляється
  • Незалежно від сервера, до якого він підключається, клієнт зможе бачити однакове подання служби
  • Допомагає кодувати дані відповідно до певного набору правил
  • Це допомагає підтримувати стандартний ієрархічний простір імен, подібний до файлів і каталогів
  • Комп’ютери, які працюють як єдина система, яка може бути локально чи географічно пов’язана
  • Це дозволяє приєднуватися до/залишати вузол у кластері та статус вузла в реальному часі
  • Ви можете збільшити продуктивність, розгорнувши більше машин
  • Це дозволяє вибрати вузол лідером для кращої координації
  • ZooKeeper швидко працює з робочими навантаженнями, де читання даних є більш поширеним, ніж запис

ZooKeeper Architecture: як це працює?

Ось коротке пояснення про Apache Архітектура Zookeeper:

  • Zookeeper слідує клієнт-серверу Archiтектура
  • Усі системи зберігають копію даних
  • Лідери обираються при запуску
Archiтектура ZooKeeper
Archiтектура ZooKeeper

Сервер: Сервер надсилає підтвердження, коли будь-який клієнт підключається. У разі відсутності відповіді від підключеного сервера клієнт автоматично перенаправляє повідомлення на інший сервер.

Клієнт: Клієнт є одним із вузлів кластера розподілених програм. Це допомагає отримати доступ до інформації з сервера. Кожен клієнт через регулярні проміжки часу надсилає на сервер повідомлення, яке допомагає серверу знати, що клієнт живий.

Лідер: Один із серверів призначений Лідером. Він надає всю інформацію клієнтам, а також підтвердження того, що сервер працює. Він виконує автоматичне відновлення, якщо будь-який з підключених вузлів вийшов з ладу.

Послідовник: Серверний вузол, який виконує вказівки лідера, називається наступним.

  • Запити на читання клієнта обробляються відповідно підключеним сервером Zookeeper
  • Клієнт пише запити, які обробляються керівником Zookeeper.

Ансамбль/Cluster: Група серверів Zookeeper, яка називається ансамблем або a Cluster. Ви можете використовувати інфраструктуру ZooKeeper у кластерному режимі, щоб забезпечити оптимальне значення системи під час запуску Apache.

WebUI ZooKeeper: Якщо ви хочете працювати з управлінням ресурсами ZooKeeper, то вам потрібно використовувати WebUI. Це дозволяє працювати з ZooKeeper за допомогою веб-інтерфейсу користувача, а не за допомогою командного рядка. Він пропонує швидкий і ефективний зв’язок із програмою ZooKeeper.

Модель даних Zookeeper (ZDM)

У цьому підручнику ZooKeeper давайте дізнаємося про модель даних Zookeeper. На малюнку нижче пояснюється модель даних Apache Zookeeper:

Модель даних Zookeeper
Модель даних Zookeeper
  • Модель даних zookeeper відповідає ієрархічному простору імен, де кожен вузол називається ZNode. Вузол — це система, в якій працює кластер.
  • Кожен ZNode має дані. Воно може мати або не мати дітей
  • Шляхи ZNode:
    • Канонічні, розділені похилою рискою та абсолютні
    • Не використовуйте жодних відносних посилань
    • Імена можуть містити символи Unicode
  • ZNode підтримує структуру статистики та номер версії для змін даних.

Типи вузлів Zookeeper

Є три типи Znodes:

Наполегливість znode: Цей тип znode активний навіть після відключення клієнта, який створив цей конкретний znode. За замовчуванням у zookeeper усі вузли є постійними, якщо це не вказано.

Ефемерний znode: цей тип znode zookeeper активний, поки клієнт не живий. Тому, коли клієнт отримує відключення від zookeeper, його також буде видалено. Крім того, ефемерним вузлам не дозволяється мати дітей.

Послідовний znode: Послідовні znode можуть бути або ефемерними, або постійними. Отже, коли новий znode створюється як послідовний znode. Ви можете призначити шлях znode, додавши 10-значний порядковий номер до оригінального імені.

ZDM- Годинники

Zookeeper, подія спостереження — це одноразовий тригер, який надсилається клієнту, який встановив спостереження. Це сталося, коли змінилися дані цього годинника. Годинник ZDM дозволяє клієнтам отримувати сповіщення про зміни znode. Операції читання ZDM, такі як getData(), getChidleren(), існують, мають опцію встановлення годинника.

Годинники впорядковані, порядок подій перегляду відповідає порядку оновлень. Клієнт зможе побачити подію спостереження для znode, перш ніж побачити нові дані, які відповідають цьому znode.

ZDM- Список контролю доступу

Zookeeper використовує ACL для контролю доступу до своїх znodes. ACL складається з пари (схема: ідентифікатор, дозвіл)

Вбудовані схеми ACL:

світ: має єдиний ідентифікатор, будь-хто

auth: не використовувати ідентифікатор, він представляє будь-якого автентифікованого користувача

дайджест: використовуйте ім'я користувача: пароль

хост: дозволяє використовувати ім’я хоста клієнта як ідентифікатор ACL

IP: використовуйте IP-адресу хоста клієнта як ідентифікатор ACL

Дозволи ACL:

  • CREATE
  • READ
  • НАПИСАТИ
  • DELETE
  • ADMIN

Наприклад (IP: 192.168.0.0/16, ПРОЧИТАТИ)

ZKS – стани сеансу та час життя

ZKS – стани сесії
ZKS – стани сесії
  • Перед виконанням будь-якого запиту важливо, щоб клієнт мав встановити сеанс із сервісом
  • Усі операції, які клієнти надсилають до служби, автоматично пов’язуються із сеансом
  • Клієнт може підключитися до будь-якого сервера в кластері. Але він підключатиметься лише до одного сервера
  • Сесія забезпечує «гарантії порядку». Запити в сеансі виконуються в порядку FIFO
  • Основні стани сеансу: 1) Підключення, 2) Підключено 3) Закрито 4) Не підключено.

Як встановити ZooKeeper

Крок 1) Натисніть «Продовжити», щоб підписатися
Перейдіть до цього за посиланням і натисніть «Продовжити підписку»

Встановіть ZooKeeper

Крок 2) Прийміть Загальні положення та умови
На наступній сторінці прийміть ліцензійну угоду

Встановіть ZooKeeper

Крок 3) Показано повідомлення подяки
Ви побачите таке повідомлення

Встановіть ZooKeeper

Крок 4) Натисніть «Продовжити налаштування».
Оновіть сторінку через 5 хвилин і перейдіть до налаштування

Встановіть ZooKeeper

Крок 5) Натисніть «Продовжити до запуску»
На наступному екрані запустіть ZooKeeper

Встановіть ZooKeeper

Крок 6) Вітаємо!
Ви закінчили!

Програми Apache ZooKeeper

Apache Zookeeper використовується для таких цілей:

  • Управління конфігурацією
  • Послуги з іменування
  • Вибір лідера
  • Постановка повідомлень у чергу
  • Управління системою оповіщення
  • Syncхронізація
  • Видали більше Cluster управління

Компанії, які використовують Zookeeper

  • Yahoo
  • Facebook
  • eBay
  • Twitter
  • Netflix
  • Zynga
  • Нутанікс

Недоліки використання Zookeeper

  • Якщо ви додаєте нові сервери Zookeeper, може статися втрата даних
  • Користувачам не дозволено переміщення
  • Не пропонують підтримку для розміщення в стійці та обізнаності
  • Zookeeper не дозволяє зменшувати кількість контейнерів, щоб запобігти випадковій втраті даних
  • Ви не можете переключити службу на мережу хоста без повної переінсталяції, якщо службу розгорнуто у віртуальній мережі
  • Служба не підтримує зміну вимог до обсягу після завершення початкового розгортання
  • Залучено велику кількість вузлів, тому може бути більше однієї точки збою
  • Повідомлення можуть бути втрачені в мережі зв’язку, для відновлення яких потрібне спеціальне програмне забезпечення

Підсумки

  • Розподілена програма – це програма, яка може працювати на кількох системах у мережі
  • Apache Zookeeper — це служба розподіленої координації з відкритим кодом, яка допомагає керувати великою кількістю хостів
  • Це дозволяє взаємне виключення та співпрацю між серверними процесами
  • Сервер, Клієнт, Лідер, Послідовник, Ансамбль/Cluster, ZooKeeper WebUI є важливими компонентами zookeeper
  • Три типи Znodes: Persistence, Ephemeral і sequential
  • Годинник ZDM — це одноразовий тригер, який надсилається клієнту, який встановив годинник. Це сталося, коли змінилися дані цього годинника
  • Zookeeper Hadoop використовує ACL для контролю доступу до своїх znodes
  • Управління конфігурацією, Назви служб., Вибір лідера, Постановка в чергу повідомлень, Управління системою сповіщень, Syncхронізація, Пошир Cluster Управління та ін.
  • Yahoo, Facebook, eBay, Twitter, Netflix деякі відомі компанії, які використовують zookeeper
  • Основним недоліком інструменту є те, що може виникнути втрата, якщо ви додаєте нові сервери Zookeeper