HBase Archiтектура: варіанти використання, компоненти та модель даних

HBase Archiструктуру та її важливі компоненти

Архітектура HBase складається в основному з чотирьох компонентів

  • HMaster
  • HRegionserver
  • Регіони
  • Боєць
  • HDFS

Нижче наведено детальну архітектуру HBase з компонентами:

HBase Archiтектура
HBase Archiдіаграма текстури

HMaster

HMaster у HBase — це реалізація головного сервера в архітектурі HBase. Він діє як агент моніторингу для моніторингу всіх екземплярів регіонального сервера, присутніх у кластері, і діє як інтерфейс для всіх змін метаданих. У середовищі розподіленого кластера Master працює на NameNode. Майстер запускає кілька фонових потоків.

Нижче наведено важливі ролі, які виконує HMaster у HBase.

  • Відіграє життєво важливу роль з точки зору продуктивності та підтримки вузлів у кластері.
  • HMaster забезпечує продуктивність адміністратора та розподіляє послуги між серверами різних регіонів.
  • HMaster призначає регіони регіональним серверам.
  • HMaster має такі функції, як керування балансуванням навантаження та перемикання після збоїв для обробки навантаження на вузли, присутні в кластері.
  • Коли клієнт хоче змінити будь-яку схему та будь-які операції з метаданими, HMaster бере на себе відповідальність за ці операції.

Деякі з методів, доступних інтерфейсом HMaster, в основному орієнтовані на метадані.

  • Таблиця (createTable, removeTable, enable, disable)
  • ColumnFamily (додати стовпець, змінити стовпець)
  • Регіон (перемістити, призначити)

Клієнт спілкується двонаправлено як з HMaster, так і з ZooKeeper. Для операцій читання та запису він безпосередньо зв’язується з серверами HRegion. HMaster призначає регіони регіональним серверам і, у свою чергу, перевіряє стан справності регіональних серверів.

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

Регіональні сервери HBase

Коли регіональний сервер HBase отримує запити на запис і читання від клієнта, він призначає запит певному регіону, де знаходиться фактичне сімейство стовпців. Однак клієнт може безпосередньо зв’язуватися з серверами HRegion, немає необхідності в обов’язковому дозволі HMaster для клієнта щодо зв’язку з серверами HRegion. Клієнту потрібна допомога HMaster, коли потрібні операції, пов’язані зі змінами метаданих і схем.

HRegionServer — це реалізація регіонального сервера. Він відповідає за обслуговування та керування регіонами або даними, які присутні в розподіленому кластері. Регіональні сервери працюють на вузлах даних у кластері Hadoop.

HMaster може підключатися до кількох серверів HRegion і виконує наступні функції.

  • Хостинг і управління регіонами
  • Автоматичне поділ регіонів
  • Обробка запитів на читання та запис
  • Безпосереднє спілкування з клієнтом

Регіони HBase

HRegions є основними будівельними елементами кластера HBase, який складається з розподілених таблиць і складається з сімейств стовпців. Він містить кілька сховищ, по одному для кожної родини стовпців. Він складається в основному з двох компонентів, якими є Memstore і Hfile.

ZooKeeper

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

Це проект з відкритим кодом, який надає багато важливих послуг.

Послуги, які надає ZooKeeper

  • Зберігає інформацію про конфігурацію
  • Забезпечує розподілену синхронізацію
  • Встановлення зв'язку клієнта з серверами регіону
  • Надає тимчасові вузли, які представляють сервери різних регіонів
  • Ефемерні вузли основних серверів для виявлення доступних серверів у кластері
  • Для відстеження збоїв сервера та мережевих розділів

Головний і підлеглий вузли HBase (регіональні сервери) зареєструвалися в ZooKeeper. Клієнту потрібен доступ до конфігурації кворуму ZK(zookeeper), щоб підключитися до головного та регіонального серверів.

Під час збою вузлів, присутніх у кластері HBase, ZKquoram ініціює повідомлення про помилки та починає відновлювати несправні вузли.

HDFS

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

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

Тут дані, що зберігаються в кожному блоці, реплікуються на 3 вузли, будь-який у випадку, якщо будь-який вузол вийде з ладу, не буде втрати даних, він матиме належний механізм відновлення резервної копії.

HDFS контактує з компонентами 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
Механізм зберігання в HBase

Переходячи до HBase, наступні ключові терміни представляють схему таблиці

  • таблиця: Присутня колекція рядків.
  • Рядок: Колекція родин колонок.
  • Колона Сім'я: Збірник колон.
  • Колонка: Колекція пар ключ-значення.
  • Простір імен: Логічне групування таблиць.
  • Осередок: кортеж {рядок, стовпець, версія} точно визначає визначення клітинки в HBase.

Сховища, орієнтовані на стовпці та орієнтовані на рядки

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

У наступній таблиці наведено деякі ключові відмінності між цими двома сховищами

База даних, орієнтована на стовпці Рядкова база даних
Коли ситуація доходить до процесу та аналітики, ми використовуємо цей підхід. Як от Онлайн аналітична обробка і це програми. Процес онлайн-транзакцій наприклад у банківській та фінансовій сферах використовують цей підхід.
Обсяг даних, який може зберігати ця модель, дуже великий, як у петабайтах Він розрахований на невелику кількість рядків і стовпців.

Пояснення щодо читання та запису даних HBase

Операції читання та запису від клієнта до Hfile можна показати на діаграмі нижче.

Читання та запис даних HBase

Крок 1) Клієнт хоче записати дані та, у свою чергу, спочатку спілкується з сервером регіонів, а потім із регіонами

Крок 2) Регіони, які звертаються до memstore для збереження, пов’язаного з сімейством стовпців

Крок 3) Спочатку дані зберігаються в Memstore, де дані сортуються, а потім вони зливаються в HFile. Основною причиною використання Memstore є збереження даних у розподіленій файловій системі на основі ключа рядка. Memstore буде розміщено в основній пам’яті регіонального сервера, поки файли HFiles записуються в HDFS.

Крок 4) Клієнт хоче читати дані з регіонів

Крок 5) У свою чергу Клієнт може мати прямий доступ до Mem store і може запитувати дані.

Крок 6) Клієнт звертається до HFiles, щоб отримати дані. Дані збираються та витягуються Клієнтом.

Memstore зберігає модифікації сховища в пам’яті. Ієрархія об’єктів у HBase Regions показана зверху вниз у таблиці нижче.

таблиця Таблиця HBase присутня в кластері HBase
область HRegions для представлених таблиць
Магазин Він зберігає для кожного ColumnFamily для кожного регіону для таблиці
Memstore
  • Memstore для кожного магазину для кожного регіону для таблиці
  • Він сортує дані перед записом у HFiles
  • Продуктивність запису та читання збільшиться завдяки сортуванню
StoreFile StoreFiles для кожного магазину для кожного регіону для таблиці
Блокувати Блоки, присутні в StoreFiles

HBase проти HDFS

HBase працює поверх HDFS і Hadoop. Деякі ключові відмінності між HDFS і HBase стосуються операцій з даними та їх обробки.

HBASE HDFS
Операції з низькою затримкою Операції з високою затримкою
Випадкове читання та запис Написати один раз Читати багато разів
Доступ через команди оболонки, API клієнта в Java, REST, Avro або Thrift В основному доступ до нього здійснюється через завдання MR (Map Reduce).
Можна виконувати як зберігання, так і процес Це тільки для складських приміщень

Деякі типові ІТ-промислові програми використовують операції HBase разом із Hadoop. Програми включають дані фондової біржі, операції з даними онлайн-банкінгу, а обробка Hbase є найкращим методом рішення.

Резюме

  • Компоненти архітектури HBase: HMaster, HRegion Server, HRegions, ZooKeeper, HDFS
  • HMaster в HBase — це реалізація головного сервера в архітектурі HBase.
  • Коли регіональний сервер HBase отримує запити на запис і читання від клієнта, він призначає запит певному регіону, де фактично знаходиться сімейство стовпців
  • HRegions є основними будівельними елементами кластера HBase, який складається з розподілених таблиць і складається з сімейств стовпців.
  • HBase Zookeeper — це централізований сервер моніторингу, який зберігає конфігураційну інформацію та забезпечує розподілену синхронізацію.
  • HDFS забезпечує високий ступінь відмовостійкості та працює на дешевому апаратному забезпеченні.
  • Модель даних HBase — це набір компонентів, який складається з таблиць, рядків, сімейств стовпців, клітинок, стовпців і версій.
  • Сховища, орієнтовані на стовпці та рядки, відрізняються механізмом зберігання.

Підсумуйте цей пост за допомогою: