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

Зміст:

Anonim

Механізм зберігання в HBase

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

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

Механізм зберігання в HBase

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

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

У цьому підручнику ви дізнаєтесь,

  • Механізм зберігання в HBase
  • Модель даних HBase
  • Архітектура HBase та її важливі компоненти
  • Пояснення читання та запису даних HBase
  • Випадки використання HBase
  • HBASE проти HDFS

Орієнтовані на стовпці проти Рядові сховища

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

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

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

Модель даних HBase

Модель даних HBase - це набір компонентів, що складається з таблиць, рядків, сімейств стовпців, комірок, стовпців та версій. Таблиці HBase містять сімейства стовпців і рядки з елементами, визначеними як Первинні ключі. Стовпець у таблиці моделі даних HBase представляє атрибути об’єктів.

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

  • Набір таблиць
  • Кожна таблиця з сімействами стовпців і рядками
  • Кожна таблиця повинна мати елемент, визначений як Первинний ключ.
  • Рядковий ключ діє як первинний ключ у HBase.
  • Будь-який доступ до таблиць HBase використовує цей Первинний ключ
  • Кожен стовпець, присутній у HBase, позначає атрибут, що відповідає об'єкту

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

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

Діаграма архітектури HBase

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

  • HMaster
  • HRegionserver
  • HR-регіони
  • Доглядач зоопарку
  • HDFS

HMaster:

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

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

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

Деякі з методів, виставлених HMaster Interface, є в першу чергу методами, орієнтованими на метадані.

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

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

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

Сервери регіонів HBase:

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

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

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

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

Регіони HBase:

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

ZooKeeper:

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

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

Послуги, що надаються ZooKeeper

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

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

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

HDFS:

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

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

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

HDFS контактує з компонентами HBase і зберігає велику кількість даних розподіленим способом.

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

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

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

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

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

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

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

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

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

Таблиця Таблиця HBase присутня в кластері HBase
Регіон HR-регіони для представлених таблиць
Зберігати Він зберігає в таблиці кожну колонку для кожної області
Мемстор
  • Мемстор для кожного магазину для кожного регіону для столу
  • Він сортує дані перед змиванням у HFiles
  • Ефективність запису та читання збільшиться через сортування
StoreFile StoreFiles для кожного магазину для кожного регіону для таблиці
Блок Блоки, присутні в StoreFiles

Випадки використання HBase

Нижче наведено приклади випадків використання HBase з докладним поясненням рішення, яке він пропонує щодо різних технічних проблем

Постановка проблеми Рішення
Індустрія телекомунікацій стикається з технічними проблемами
  • Зберігання мільярдів записів журналу CDR (детальний запис дзвінків), створених доменом телекомунікацій
  • Забезпечення доступу в реальному часі до журналів CDR та платіжної інформації клієнтів
  • Забезпечити економічно ефективне рішення порівняно з традиційними системами баз даних
HBase використовується для зберігання мільярдів рядків детальних записів дзвінків. Якщо до існуючої бази даних СУБД додати 20 ТБ даних на місяць, продуктивність погіршиться. Для обробки великої кількості даних у цьому випадку використання HBase є найкращим рішенням. HBase виконує швидкі запити та відображає записи.
Банківська індустрія генерує мільйони записів на щоденній основі. На додаток до цього, банківська галузь також потребує аналітичного рішення, яке може виявляти шахрайство в грошових операціях Для зберігання, обробки та оновлення великих обсягів даних та аналітики ідеальним рішенням є - HBase, інтегрований з декількома компонентами екосистеми Hadoop.

Крім того, можна використовувати HBase

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

HBase проти HDFS

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

HBASE

HDFS

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

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

Резюме

Hbase - одна з розподілених баз даних, орієнтованих на стовпці NoSql, доступна в Apache Foundation. HBase забезпечує більшу продуктивність для отримання меншої кількості записів, ніж Hadoop чи Hive. Шукати дане будь-яке вхідне значення дуже просто, оскільки воно підтримує індексацію, транзакції та оновлення.

Ми можемо виконувати онлайн-аналітику в режимі реального часу, використовуючи Hbase, інтегровану з екосистемою Hadoop. Він має автоматичне та налаштоване затінення для наборів даних або таблиць та забезпечує спокійні API для виконання завдань MapReduce.