HBase Archiтектура: варіанти використання, компоненти та модель даних
⚡ Розумний підсумок
Архітектура HBase побудована з чотирьох координуючих компонентів — HMaster, Region Servers, ZooKeeper та HDFS — які зберігають дані в стовпцевої моделі, розділяють їх на регіони та обслуговують випадкові операції читання та запису з низькою затримкою.
Apache HBase — це розподілена, стовпцево-орієнтована база даних NoSQL, яка працює поверх Hadoop і розподілена файлова система Hadoop (HDFS). Її архітектура поєднує координуючий головний сервер, регіональні сервери та ZooKeeper для зберігання дуже великих таблиць та обробки швидких випадкових операцій читання та запису.
HBase Archiструктуру та її важливі компоненти
Архітектура HBase має такі основні компоненти:
- HMaster
- Сервер HRegion
- Регіони
- ZooKeeper
- HDFS
Нижче наведено детальну архітектуру HBase з її компонентами, як показано на діаграмі.
HMaster
HMaster в HBase – це реалізація головного сервера в архітектурі HBase. Він діє як агент моніторингу для контролю всіх екземплярів регіонального сервера, присутніх у кластері, та як інтерфейс для всіх змін метаданих. У розподіленому кластерному середовищі головний сервер працює на NameNode. Головний сервер виконує кілька фонових потоків.
Нижче наведено важливі ролі, які виконує HMaster у HBase:
- Відіграє життєво важливу роль з точки зору продуктивності та підтримки вузлів у кластері.
- HMaster забезпечує продуктивність адміністратора та розподіляє послуги між серверами різних регіонів.
- HMaster призначає регіони регіональним серверам.
- HMaster контролює балансування навантаження та перемикання на резервний комп'ютер для обробки навантаження на вузли, присутні в кластері.
- Коли клієнт хоче змінити будь-яку схему або операцію з метаданими, HMaster бере на себе відповідальність за ці операції.
Деякі з методів, що надаються інтерфейсом HMaster, є переважно методами, орієнтованими на метадані:
- Таблиця (createTable, removeTable, enable, disable)
- ColumnFamily (додати стовпець, змінити стовпець)
- Регіон (перемістити, призначити)
Клієнт взаємодіє двостороннім чином як з HMaster, так і з ZooKeeper. Для операцій читання та запису він безпосередньо зв'язується з серверами HRegion. HMaster призначає регіони серверам регіонів і, у свою чергу, перевіряє стан справності серверів регіонів.
В усій архітектурі ми маємо кілька регіональних серверів. На регіональних серверах присутній HLog, який зберігає всі файли журналів.
Регіональні сервери HBase
Коли сервер регіону HBase отримує запити на запис та читання від клієнта, він призначає запит певному регіону, де знаходиться фактичне сімейство стовпців. Клієнт може безпосередньо зв'язатися із серверами HRegion; для зв'язку клієнта із серверами HRegion не потрібен обов'язковий дозвіл HMaster. Клієнту потрібна допомога HMaster лише тоді, коли потрібні операції, пов'язані з метаданими та змінами схеми.
HRegionServer – це реалізація сервера регіонів. Він відповідає за обслуговування та керування регіонами, або даними, що присутні в розподіленому кластері. Сервери регіонів працюють на вузлах даних, присутніх у кластері Hadoop.
HMaster може зв'язуватися з кількома серверами HRegion та виконує такі функції:
- Хостинг і управління регіонами
- Автоматичне поділ регіонів
- Обробка запитів на читання та запис
- Безпосереднє спілкування з клієнтом
Регіони HBase
HRegions – це основні будівельні елементи кластера HBase. Вони складаються з розподілу таблиць та сімейств стовпців. Регіон містить кілька сховищ, по одному для кожного сімейства стовпців. Він складається переважно з двох компонентів: MemStore та HFile.
ZooKeeper
HBase ZooKeeper — це централізований сервер моніторингу, який зберігає інформацію про конфігурацію та забезпечує розподілену синхронізацію. Розподілена синхронізація координує розподілені програми, що працюють у кластері, надаючи послуги координації між вузлами. Якщо клієнт хоче взаємодіяти з регіонами, він повинен спочатку звернутися до ZooKeeper.
Це проєкт з відкритим кодом, який надає багато важливих послуг.
Послуги, що надаються ZooKeeper:
- Зберігає інформацію про конфігурацію
- Забезпечує розподілену синхронізацію
- Встановлює зв'язок клієнта з серверами регіону
- Надає тимчасові вузли, що представляють різні сервери регіону
- Дозволяє головному серверу використовувати ці тимчасові вузли для виявлення доступних серверів у кластері.
- Tracзбій сервера ks та мережеві розділи
Головний та підлеглий вузли HBase (регіональні сервери) реєструються в ZooKeeper. Клієнту потрібен доступ до конфігурації кворуму ZooKeeper (ZK) для підключення до головного та регіональних серверів.
Під час збою вузлів, присутніх у кластері HBase, кворум ZooKeeper ініціює повідомлення про помилки та починає відновлювати збійні вузли.
HDFS
HDFS – це розподілена Hadoop Файлова системаЯк випливає з назви, вона забезпечує розподілене середовище для зберігання даних і являє собою файлову систему, призначену для роботи на стандартному обладнанні. Вона зберігає кожен файл у кількох блоках, а для підтримки відмовостійкості блоки реплікуються по всьому кластеру Hadoop.
HDFS забезпечує високий ступінь відмовостійкості та працює на дешевому стандартному обладнанні. Додавання вузлів до кластера та виконання обробки й зберігання даних за допомогою дешевого стандартного обладнання забезпечує клієнту кращі результати порівняно з існуючою конфігурацією.
Тут дані, що зберігаються в кожному блоці, реплікуються на 3 вузли, тому у разі збою будь-якого вузла втрати даних не буде; він має належний механізм резервного копіювання та відновлення.
HDFS взаємодіє з компонентами HBase та зберігає великий обсяг даних розподіленим чином.
Модель даних HBase
Модель даних HBase – це набір компонентів, що складається з таблиць, рядків, сімейств стовпців, комірок, стовпців та версій. Таблиці HBase містять сімейства стовпців та рядки з елементами, визначеними як первинні ключі. Стовпець у таблиці моделі даних HBase представляє атрибут об'єктів.
Модель даних HBase складається з таких елементів:
- Набір столів
- Кожна таблиця з родинами стовпців і рядками
- Кожна таблиця повинна мати елемент, визначений як первинний ключ.
- Ключ рядка діє як первинний ключ у HBase.
- Будь-який доступ до таблиць HBase використовує цей первинний ключ.
- Кожен стовпець, присутній у HBase, позначає атрибут, що відповідає об'єкту.
Випадки використання HBase
Нижче наведено приклади використання HBase з детальним поясненням рішень, які HBase пропонує для різних технічних проблем.
| Постановка проблеми | Рішення |
| Телекомунікаційна галузь стикається з такими технічними проблемами: зберігання мільярдів записів журналу деталей дзвінків (CDR), згенерованих телекомунікаційною сферою; забезпечення доступу до журналів CDR та платіжної інформації клієнтів у режимі реального часу; та забезпечення економічно ефективного рішення порівняно з традиційними системами баз даних. | HBase використовується для зберігання мільярдів рядків детальних записів викликів. Якщо 20 ТБ даних додавати на місяць до існуючої бази даних RDBMS, продуктивність погіршиться. Для обробки великої кількості даних у цьому випадку використання HBase є найкращим рішенням. HBase виконує швидкі запити та відображає записи. |
| Банківська галузь щодня генерує мільйони записів. Крім того, банківській галузі також потрібне аналітичне рішення, яке може виявляти шахрайство в грошових операціях. | Для зберігання, обробки та оновлення величезних обсягів даних, а також для проведення аналітики ідеальним рішенням є HBase, інтегрований з кількома компонентами екосистеми Hadoop. |
Окрім цього, HBase можна використовувати:
- Щоразу, коли є потреба в застосунках з великим обсягом запису.
- Для проведення онлайн-аналітики журналів та створення звітів про відповідність вимогам.
Механізм зберігання в HBase
HBase — це база даних, орієнтована на стовпці, а дані зберігаються в таблицях. Таблиці сортуються за RowId. Як показано нижче, HBase має RowId, який являє собою колекцію кількох сімейств стовпців, присутніх у таблиці.
Сімейства стовпців, присутні в схемі, є парами ключ-значення. Якщо розглянути детальніше, кожне сімейство стовпців має кілька стовпців. Значення стовпців зберігаються на диску. Кожна комірка таблиці має власні метадані, такі як позначка часу та інша інформація.
Нижче показано стовпчасто-орієнтоване сховище з ключами рядків, сімействами стовпців та клітинками.
Нижче наведено ключові терміни, що представляють схему таблиці HBase:
- Таблиця: Наявна колекція рядків.
- Рядок: Колекція сімейств стовпців.
- Сімейство стовпців: Колекція стовпців.
- Колонка: Колекція пар ключ-значення.
- Простір імен: Логічна групаping таблиць.
- Комірка: Кортеж {рядок, стовпець, версія}, який точно визначає визначення комірки в HBase.
Сховища, орієнтовані на стовпці та орієнтовані на рядки
Стовпцево-орієнтовані та рядково-орієнтовані сховища відрізняються механізмом зберігання. Як усім відомо, традиційні реляційні моделі зберігають дані у рядковому форматі, тобто у вигляді рядків даних. Стовпцево-орієнтовані сховища зберігають таблиці даних у вигляді стовпців та сімейств стовпців.
У наступній таблиці наведено деякі ключові відмінності між цими двома сховищами.
| База даних, орієнтована на стовпці | Рядково-орієнтована база даних |
| Використовується, коли ситуація пов'язана з обробкою та аналітикою, такою як онлайн-аналітична обробка та її застосування. | Онлайн-обробка транзакцій, така як у банківській та фінансовій сферах, використовує цей підхід. |
| Обсяг даних, які можна зберігати в цій моделі, дуже великий, вимірюється петабайтами. | Він розрахований на невелику кількість рядків і стовпців. |
Пояснення щодо читання та запису даних HBase
Операції читання та запису з клієнта в HFile показані на діаграмі нижче.
Крок 1) Клієнт хоче записати дані та, у свою чергу, спочатку зв'язується з сервером регіонів, а потім з регіонами.
Крок 2) Регіон зв'язується з MemStore для зберігання даних, пов'язаних із сімейством стовпців.
Крок 3) Спочатку дані зберігаються в MemStore, де вони сортуються, а потім записуються в HFile. Основна причина використання MemStore полягає у зберіганні даних у розподіленій файловій системі на основі ключа рядка. MemStore розміщується в основній пам'яті регіонального сервера, тоді як HFiles записуються в HDFS.
Крок 4) Клієнт хоче зчитати дані з регіонів.
Крок 5) У свою чергу, клієнт може мати прямий доступ до MemStore та може запитувати дані.
Крок 6) Клієнт звертається до HFiles для отримання даних. Дані витягуються та завантажуються клієнтом.
MemStore зберігає зміни в пам'яті сховища. Ієрархія об'єктів у регіонах HBase, зверху вниз, показана в таблиці нижче.
| таблиця | Таблиця HBase присутня в кластері HBase |
| область | HRegions для представлених таблиць |
| Магазин | Зберігає по одному на сімейство стовпців для кожного регіону таблиці |
| MemStore | MemStore для кожного сховища для кожного регіону таблиці. Він сортує дані перед зчитуванням у HFiles. Продуктивність запису та читання збільшується завдяки сортуванню. |
| StoreFile | StoreFiles для кожного магазину для кожного регіону для таблиці |
| Блокувати | Блоки, присутні в StoreFiles |
HBase проти HDFS
HBase працює поверх HDFS та Hadoop. Деякі ключові відмінності між HDFS та HBase полягають у операціях з даними та їх обробці.
| HBase | HDFS |
| Операції з низькою затримкою | Операції з високою затримкою |
| Випадкове читання та запис | Напиши один раз, прочитай багато разів |
| Доступ через команди оболонки, клієнтський API у Java, REST, Avro або Thrift | Доступ переважно здійснюється через MapReduce (MR) вакансії |
| Можна виконувати як зберігання, так і обробку | Це лише для складських приміщень |
Деякі типові промислові ІТ-додатки використовують операції HBase разом із Hadoop. До таких додатків належать дані фондової біржі та операції з даними онлайн-банкінгу, де HBase є найкращим рішенням. Щойно ваш кластер буде готовий, ви зможете читання та запис даних у HBase or встановити HBase на свіжому вузлі.




