HBase Archiструктура: случаи на използване, компоненти и модел на данни
⚡ Умно обобщение
Архитектурата на HBase е изградена от четири координиращи компонента — HMaster, Region Servers, ZooKeeper и HDFS — които съхраняват данни в колонно-ориентиран модел, разделят ги на региони и обслужват произволни четения и записи с ниска латентност.

Apache HBase е разпределена, колонно-ориентирана NoSQL база данни, която работи върху Hadoop и разпределената файлова система Hadoop (HDFS). Нейната архитектура комбинира координиращ главен сървър, регионални сървъри и ZooKeeper, за да съхранява много големи таблици и да обслужва бързи произволни четения и записи.
HBase Archiструктура и нейните важни компоненти
Архитектурата на HBase има следните основни компоненти:
- HMaster
- HRegionServer
- HRрегиони
- ZooKeeper
- HDFS
По-долу е показана подробна архитектура на HBase с нейните компоненти, както е показано на диаграмата.
HMaster
HMaster в HBase е имплементацията на Master сървър в HBase архитектура. Той действа като агент за наблюдение на всички екземпляри на Region Server, налични в клъстера, и действа като интерфейс за всички промени в метаданните. В разпределена клъстерна среда, Master сървърът работи на NameNode. Master сървърът изпълнява няколко фонови нишки.
Следните важни роли се изпълняват от HMaster в HBase:
- Играе жизненоважна роля по отношение на производителността и поддържането на възли в клъстера.
- HMaster осигурява административна производителност и разпространява услуги към различни регионални сървъри.
- HMaster присвоява региони на регионални сървъри.
- HMaster контролира балансирането на натоварването и превключването при срив, за да се справи с натоварването на възлите, присъстващи в клъстера.
- Когато клиент иска да промени някоя схема или операция с метаданни, HMaster поема отговорност за тези операции.
Някои от методите, предоставени от интерфейса на HMaster, са предимно методи, ориентирани към метаданни:
- Таблица (създаване на таблица, премахване на таблица, активиране, деактивиране)
- ColumnFamily (добавяне на колона, промяна на колона)
- Регион (преместване, присвояване)
Клиентът комуникира двупосочно както с HMaster, така и със ZooKeeper. За операции по четене и запис, той се свързва директно със сървърите на HRegion. HMaster присвоява региони на сървърите на региони и от своя страна проверява състоянието на сървърите на региони.
В цялата архитектура имаме множество регионални сървъри. В регионалните сървъри е наличен HLog, който съхранява всички лог файлове.
Регионални сървъри на HBase
Когато HBase Region Server получи заявки за запис и четене от клиента, той присвоява заявката към конкретен регион, където се намира действителното семейство колони. Клиентът може директно да се свърже със HRegion сървърите; няма нужда от задължително HMaster разрешение, за да може клиентът да комуникира със HRegion сървърите. Клиентът изисква помощ от HMaster само когато са необходими операции, свързани с метаданни и промени в схемата.
HRegionServer е имплементацията на Region Server. Той е отговорен за обслужването и управлението на региони или данните, които се намират в разпределен клъстер. Регионалните сървъри работят на възлите за данни, намиращи се в клъстера Hadoop.
HMaster може да се свърже с множество HRegion сървъри и изпълнява следните функции:
- Хостинг и управление на региони
- Автоматично разделяне на региони
- Обработка на заявки за четене и запис
- Директно общуване с клиента
HBase региони
HRegion-ите са основните градивни елементи на HBase клъстер. Те се състоят от разпределението на таблици и са съставени от семейства колони. Регионът съдържа множество хранилища, по едно за всяко семейство колони. Състои се главно от два компонента: MemStore и HFile.
ZooKeeper
HBase ZooKeeper е централизиран сървър за наблюдение, който поддържа информация за конфигурацията и осигурява разпределена синхронизация. Разпределената синхронизация координира разпределените приложения, работещи в клъстера, предоставяйки услуги за координация между възлите. Ако клиентът иска да комуникира с региони, първо трябва да се обърне към ZooKeeper.
Това е проект с отворен код и предоставя много важни услуги.
Услуги, предоставяни от ZooKeeper:
- Поддържа информация за конфигурацията
- Осигурява разпределена синхронизация
- Установява комуникация на клиента с регионалните сървъри
- Предоставя ефимерни възли, които представляват различни регионални сървъри
- Позволява на главния сървър да използва тези ефимерни възли, за да открива налични сървъри в клъстера
- Tracks сървърна повреда и мрежови дялове
Главните и подчинените възли на HBase (регионални сървъри) се регистрират в ZooKeeper. Клиентът се нуждае от достъп до конфигурацията на кворума на ZooKeeper (ZK), за да се свърже с главния и регионалния сървър.
По време на повреда на възли, налични в клъстера HBase, кворумът на ZooKeeper задейства съобщения за грешки и започва да поправя повредените възли.
HDFS
HDFS е разпределената Hadoop система. File SystemКакто подсказва името, тя предоставя разпределена среда за съхранение и е файлова система, проектирана да работи на стандартен хардуер. Съхранява всеки файл в множество блокове, а за да се поддържа отказоустойчивост, блоковете се репликират в Hadoop клъстер.
HDFS осигурява висока степен на отказоустойчивост и работи на евтин стандартен хардуер. Чрез добавяне на възли към клъстера и извършване на обработка и съхранение с помощта на евтин стандартен хардуер, той дава на клиента по-добри резултати в сравнение със съществуващата конфигурация.
Тук данните, съхранени във всеки блок, се репликират в 3 възела, така че ако някой възел се повреди, няма да има загуба на данни; той има подходящ механизъм за архивиране и възстановяване.
HDFS се свързва с компонентите на HBase и съхранява голямо количество данни по разпределен начин.
HBase модел на данни
Моделът на данни HBase е набор от компоненти, който се състои от таблици, редове, семейства колони, клетки, колони и версии. HBase таблиците съдържат семейства колони и редове, като елементите са дефинирани като първични ключове. Колоната в таблицата на модела на данни HBase представлява атрибут на обектите.
Моделът на данни HBase се състои от следните елементи:
- Комплект маси
- Всяка таблица със семейства колони и редове
- Всяка таблица трябва да има елемент, дефиниран като първичен ключ.
- Ключът на реда действа като първичен ключ в HBase.
- Всеки достъп до HBase таблици използва този първичен ключ.
- Всяка колона, присъстваща в HBase, обозначава атрибут, съответстващ на обект.
Случаи на използване на HBase
Следват примери за употреба на HBase с подробно обяснение на решението, което HBase предоставя за различни технически проблеми.
| Декларация за проблема | Решение |
| Телекомуникационната индустрия е изправена пред следните технически предизвикателства: съхраняване на милиарди записи от дневници на повиквания (CDR), генерирани от телекомуникационния домейн; осигуряване на достъп в реално време до CDR дневници и информация за фактуриране на клиенти; и предоставяне на рентабилно решение в сравнение с традиционните системи за бази данни. | HBase се използва за съхраняване на милиарди редове с подробни записи на разговори. Ако 20TB данни се добавят на месец към съществуващата база данни RDBMS, производителността ще се влоши. За обработка на голямо количество данни в този случай на употреба, HBase е най-доброто решение. HBase извършва бързо запитване и показва записи. |
| Банковата индустрия генерира милиони записи ежедневно. Освен това, банковата индустрия се нуждае и от аналитично решение, което може да открива измами при парични транзакции. | За съхраняване, обработка и актуализиране на огромни обеми от данни и за извършване на анализи, идеалното решение е HBase, интегриран с няколко компонента на екосистемата Hadoop. |
Освен това, HBase може да се използва:
- Винаги, когато има нужда от приложения с голям обем на запис.
- За извършване на онлайн анализи на лог файлове и генериране на отчети за съответствие.
Механизъм за съхранение в HBase
HBase е колонно-ориентирана база данни, а данните се съхраняват в таблици. Таблиците са сортирани по RowId. Както е показано по-долу, HBase има RowId, който е колекцията от няколко семейства колони, присъстващи в таблицата.
Семействата колони, които присъстват в схемата, са двойки ключ-стойност. Ако разгледаме по-подробно, всяко семейство колони има множество колони. Стойностите на колоните се съхраняват на дискова памет. Всяка клетка от таблицата има свои собствени метаданни, като например времева маркировка и друга информация.
Колонно-ориентираното оформление на съхранението, с ключове на редове, семейства колони и клетки, е показано по-долу.
Следните ключови термини представляват схема на таблица в HBase:
- Таблица: Налична е колекция от редове.
- Ред: Колекция от семейства колони.
- Семейство колони: Колекция от колони.
- Колона: Колекция от двойки ключ-стойност.
- Именно пространство: Логическа групаping на маси.
- Клетка: Кортеж {ред, колона, версия}, който точно определя дефиницията на клетка в HBase.
Ориентирани към колони срещу ориентирани към редове хранилища
Колонно-ориентираните и редово-ориентираните хранилища се различават по механизма си за съхранение. Както всички знаем, традиционните релационни модели съхраняват данни във формат, базиран на редове, под формата на редове от данни. Колонно-ориентираните хранилища съхраняват таблици с данни под формата на колони и семейства колони.
Следната таблица показва някои ключови разлики между тези две хранилища.
| База данни, ориентирана към колони | База данни, ориентирана към редове |
| Използва се, когато ситуацията включва обработка и анализи, като например онлайн аналитична обработка и нейните приложения. | Онлайн обработката на транзакции, като например банковите и финансовите домейни, използва този подход. |
| Количеството данни, което може да се съхранява в този модел, е много голямо, по отношение на петабайти. | Предназначен е за малък брой редове и колони. |
Обяснени данни за четене и запис на HBase
Операциите за четене и запис от клиента в HFile са показани на диаграмата по-долу.
Стъпка 1) Клиентът иска да записва данни и от своя страна първо комуникира със сървъра на регионите, а след това с регионите.
Стъпка 2) Регионът се свързва с MemStore за съхраняване на данните, свързани със семейството колони.
Стъпка 3) Първо, данните се съхраняват в MemStore, където се сортират, и след това се записват в HFile. Основната причина за използването на MemStore е съхраняването на данни в разпределена файлова система, базирана на ключа на реда. MemStore се поставя в основната памет на Region Server, докато 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 на нов възел.



