HBase Archiструктура: случаи на използване, компоненти и модел на данни

⚡ Умно обобщение

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

  • 🧭 HМайстор: Присвоява региони на регионални сървъри, обработва балансирането на натоварването и превключването при срив, както и управлява промените в схемата и метаданните.
  • 🗄️ Регионални сървъри: Обслужвайте заявки за четене и запис от клиенти, хоствайте региони и разделяйте региони автоматично с нарастването на данните.
  • 🧱 Региони и магазини: Всеки регион съхранява по едно хранилище за всяко семейство колони, изградено от MemStore в паметта и HFiles на диска.
  • 🔗 Зоопарк: Координира клъстера, tracks сървърни сривове и съхранява конфигурацията на кворума, която клиентите използват за свързване.
  • 🧮 Модел на данни: Таблиците групират семейства колони и редове, а ключът на реда действа като първичен ключ за всеки достъп.
  • HBase срещу HDFS: HBase добавя произволни четения и записи с ниска латентност върху пакетното съхранение на HDFS.

HBase архитектура с нейните компоненти, модел на данни и поток от данни за четене и запис

Apache HBase е разпределена, колонно-ориентирана NoSQL база данни, която работи върху Hadoop и разпределената файлова система Hadoop (HDFS). Нейната архитектура комбинира координиращ главен сървър, регионални сървъри и ZooKeeper, за да съхранява много големи таблици и да обслужва бързи произволни четения и записи.

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

Архитектурата на HBase има следните основни компоненти:

  • HMaster
  • HRegionServer
  • HRрегиони
  • ZooKeeper
  • HDFS

По-долу е показана подробна архитектура на HBase с нейните компоненти, както е показано на диаграмата.

Диаграма на архитектурата на HBase, показваща HMaster, регионални сървъри, ZooKeeper и HDFS

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, показващ ключа на реда, семействата колони, колоните и клетките

Следните ключови термини представляват схема на таблица в HBase:

  • Таблица: Налична е колекция от редове.
  • Ред: Колекция от семейства колони.
  • Семейство колони: Колекция от колони.
  • Колона: Колекция от двойки ключ-стойност.
  • Именно пространство: Логическа групаping на маси.
  • Клетка: Кортеж {ред, колона, версия}, който точно определя дефиницията на клетка в HBase.

Ориентирани към колони срещу ориентирани към редове хранилища

Колонно-ориентираните и редово-ориентираните хранилища се различават по механизма си за съхранение. Както всички знаем, традиционните релационни модели съхраняват данни във формат, базиран на редове, под формата на редове от данни. Колонно-ориентираните хранилища съхраняват таблици с данни под формата на колони и семейства колони.

Следната таблица показва някои ключови разлики между тези две хранилища.

База данни, ориентирана към колони База данни, ориентирана към редове
Използва се, когато ситуацията включва обработка и анализи, като например онлайн аналитична обработка и нейните приложения. Онлайн обработката на транзакции, като например банковите и финансовите домейни, използва този подход.
Количеството данни, което може да се съхранява в този модел, е много голямо, по отношение на петабайти. Предназначен е за малък брой редове и колони.

Обяснени данни за четене и запис на HBase

Операциите за четене и запис от клиента в HFile са показани на диаграмата по-долу.

Поток от данни за четене и запис в HBase между клиента, регионалния сървър, MemStore и 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 на нов възел.

Въпроси и Отговори

Да. HBase е разпределена, колонно-ориентирана NoSQL база данни, моделирана по Google Bigtable и изграден върху HDFS. Съхранява разредени данни в таблици със семейства колони и не използва фиксирани схеми или SQL съединения като релационна база данни.

WAL, наричан още HLog, записва всеки запис на регионалния сървър, преди той да влезе в MemStore. Съхранява се на HDFS, така че ако регионалният сървър се срине преди изчистване на данните, HBase преиграва WAL, за да възстанови незапазените редакции.

Компактирането обединява HFiles, за да се ускори четенето. Малкото компресиране комбинира няколко малки съседни HFiles в един. Значителното компресиране презаписва всички HFiles от семейство колони в един файл и физически премахва изтритите и изтеклите клетки.

И двете са NoSQL хранилища, вдъхновени от Bigtable, но HBase работи на HDFS с един активен HMaster и силна консистентност, докато Cassandra е без майстор с настройваема, евентуално последователна репликация. HBase е подходящ за Hadoop анализи; Cassandra отговаря на винаги включените писания.

Проектирайте ключовете на редове така, че четенето и записът да са разпределени равномерно в регионите. Избягвайте монотонно нарастващите ключове, които създават горещи точки на един регионален сървър. Използвайте солене, хеширане или обръщане на полетата и поддържайте ключовете кратки, защото те се повтарят във всяка клетка.

Регионът се разделя автоматично, когато размерът на хранилището му надхвърли конфигуриран праг. Сървърът на регионите го разделя на два дъщерни региона на средния ред, а HMaster може да преназначи един от тях на друг сървър, за да балансира натоварването.

Инструментите с изкуствен интелект и машинно обучение анализират модели на заявки и достъп, за да предложат дизайни за редове-ключове и семейства колони, които избягват горещи точки. Те също така сканират показателите и регистрационните файлове на регионалния сървър, за да сигнализират за аномалии, като например изкривени региони или неуспешни възли, рано.

Да. Копилот на GitHub чернови на HBase Java клиентски код, команди на обвивката и филтри за сканиране от кратък коментар. RevПрегледайте изхода му за правилни имена на таблици, семейства колони и API класове, като например Connection и Table, преди да го стартирате в реален клъстер.

Обобщете тази публикация с: