Механізм зберігання в HBase
HBase - це база даних, орієнтована на стовпці, і дані зберігаються в таблицях. Таблиці сортуються за RowId. Як показано нижче, HBase має RowId, що є колекцією декількох сімейств стовпців, які присутні в таблиці.
Сімейства стовпців, які присутні в схемі, є парами ключ-значення. Якщо ми детально спостерігаємо за кожним сімейством стовпців, що мають кілька номерів стовпців. Значення стовпців, що зберігаються в пам’яті диска. Кожна комірка таблиці має власні метадані, такі як позначка часу та інша інформація.
Для HBase наступні ключові терміни, що представляють схему таблиці
- Таблиця : Колекція присутніх рядків.
- Рядок : Колекція сімейств колон.
- Сімейство колонок : Колекція колон.
- Стовпець : Збір пар ключ-значення.
- Простір імен : Логічне групування таблиць.
- Клітинка : Кортеж {рядок, стовпець, версія} точно вказує визначення комірки в HBase.
У цьому підручнику ви дізнаєтесь,
- Механізм зберігання в HBase
- Модель даних HBase
- Архітектура HBase та її важливі компоненти
- Пояснення читання та запису даних HBase
- Випадки використання HBase
- HBASE проти HDFS
Орієнтовані на стовпці проти Рядові сховища
Стовпчикові та рядкові сховища відрізняються механізмом зберігання. Як ми всі знаємо, традиційні реляційні моделі зберігають дані у форматі на основі рядків, як у термінах рядків даних. Орієнтовані на стовпці сховища зберігають таблиці даних у термінах стовпців та сімейств стовпців.
Наступна таблиця наводить деякі ключові відмінності між цими двома сховищами
База даних, орієнтована на стовпці | База даних, орієнтована на рядки |
|
|
|
|
Модель даних 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-регіони для представлених таблиць |
Зберігати | Він зберігає в таблиці кожну колонку для кожної області |
Мемстор |
|
StoreFile | StoreFiles для кожного магазину для кожного регіону для таблиці |
Блок | Блоки, присутні в StoreFiles |
Випадки використання HBase
Нижче наведено приклади випадків використання HBase з докладним поясненням рішення, яке він пропонує щодо різних технічних проблем
Постановка проблеми | Рішення |
---|---|
Індустрія телекомунікацій стикається з технічними проблемами
| HBase використовується для зберігання мільярдів рядків детальних записів дзвінків. Якщо до існуючої бази даних СУБД додати 20 ТБ даних на місяць, продуктивність погіршиться. Для обробки великої кількості даних у цьому випадку використання HBase є найкращим рішенням. HBase виконує швидкі запити та відображає записи. |
Банківська індустрія генерує мільйони записів на щоденній основі. На додаток до цього, банківська галузь також потребує аналітичного рішення, яке може виявляти шахрайство в грошових операціях | Для зберігання, обробки та оновлення великих обсягів даних та аналітики ідеальним рішенням є - HBase, інтегрований з декількома компонентами екосистеми Hadoop. |
Крім того, можна використовувати HBase
- Всякий раз, коли виникає необхідність писати важкі програми.
- Виконання онлайн-аналітики журналів та формування звітів про відповідність.
HBase проти HDFS
HBase працює на вершині HDFS та Hadoop. Деякі ключові відмінності між HDFS і HBase полягають в операціях з даними та їх обробці.
HBASE |
HDFS |
|
|
|
|
|
|
|
|
|
|
Деякі типові ІТ-промислові додатки використовують операції HBase разом із Hadoop. Програми включають біржові дані, операції з даними онлайн-банкінгу, а обробка Hbase є найкращим методом рішення.
Резюме
Hbase - одна з розподілених баз даних, орієнтованих на стовпці NoSql, доступна в Apache Foundation. HBase забезпечує більшу продуктивність для отримання меншої кількості записів, ніж Hadoop чи Hive. Шукати дане будь-яке вхідне значення дуже просто, оскільки воно підтримує індексацію, транзакції та оновлення.
Ми можемо виконувати онлайн-аналітику в режимі реального часу, використовуючи Hbase, інтегровану з екосистемою Hadoop. Він має автоматичне та налаштоване затінення для наборів даних або таблиць та забезпечує спокійні API для виконання завдань MapReduce.