HBase Architecture: варианты использования, компоненты и модель данных
⚡ Умное резюме
Архитектура HBase построена на основе четырех координирующих компонентов — HMaster, серверов регионов, ZooKeeper и HDFS — которые хранят данные в столбцовой модели, разделяют их на регионы и обеспечивают чтение и запись с низкой задержкой.

Apache HBase — это распределенная столбцово-ориентированная NoSQL-база данных, работающая поверх... Hadoop а также распределенная файловая система Hadoop (HDFS). Ее архитектура объединяет координирующий главный сервер, региональные серверы и ZooKeeper для хранения очень больших таблиц и обеспечения быстрой произвольной операции чтения и записи.
HBase ArchiТекстура и ее важные компоненты
Архитектура HBase включает следующие основные компоненты:
- Хмастер
- HRegionServer
- HRрегионы
- Работник зоопарка
- HDFS
Ниже представлена подробная архитектура HBase с указанием ее компонентов, как показано на диаграмме.
Хмастер
HMaster в HBase — это реализация главного сервера в архитектуре HBase. Он выступает в качестве агента мониторинга, отслеживающего все экземпляры серверов регионов, присутствующие в кластере, и служит интерфейсом для всех изменений метаданных. В распределенной кластерной среде главный сервер работает на NameNode. Главный сервер запускает несколько фоновых потоков.
В HBase роль HMaster выполняет, в частности, следующие функции:
- Играет жизненно важную роль с точки зрения производительности и обслуживания узлов в кластере.
- HMaster обеспечивает производительность администратора и распределяет услуги по серверам разных регионов.
- HMaster назначает регионы региональным серверам.
- HMaster управляет балансировкой нагрузки и переключением при сбоях для обработки нагрузки на узлы, присутствующие в кластере.
- Когда клиент хочет изменить какую-либо схему или выполнить какие-либо операции с метаданными, HMaster берет на себя ответственность за эти операции.
Некоторые из методов, предоставляемых интерфейсом HMaster, в первую очередь ориентированы на метаданные:
- Таблица (createTable, RemoveTable, включить, отключить)
- ColumnFamily (добавление столбца, изменение столбца)
- Регион (переместить, назначить)
Клиент осуществляет двустороннюю связь как с HMaster, так и с ZooKeeper. Для операций чтения и записи он напрямую обращается к серверам HRegion. HMaster назначает регионы серверам регионов и, в свою очередь, проверяет состояние работоспособности серверов регионов.
Вся архитектура включает в себя несколько региональных серверов. На региональных серверах находится HLog, в котором хранятся все файлы журналов.
Серверы региона HBase
Когда сервер регионов HBase получает запросы на запись и чтение от клиента, он назначает запрос конкретному региону, где фактически находится семейство столбцов. Клиент может напрямую связываться с серверами регионов; для связи с серверами регионов клиенту не требуется обязательное разрешение HMaster. Клиенту требуется помощь HMaster только в тех случаях, когда необходимы операции, связанные с метаданными и изменениями схемы.
HRegionServer — это реализация сервера регионов. Он отвечает за обслуживание и управление регионами, или данными, хранящимися в распределенном кластере. Серверы регионов работают на узлах данных, входящих в кластер Hadoop.
HMaster может взаимодействовать с несколькими серверами HRegion и выполняет следующие функции:
- Хостинг и управление регионами
- Автоматическое разделение регионов
- Обработка запросов на чтение и запись.
- Общение с клиентом напрямую
HBase-регионы
Регионы HR являются основными строительными элементами кластера HBase. Они состоят из распределения таблиц и включают в себя семейства столбцов. Регион содержит несколько хранилищ, по одному для каждого семейства столбцов. Он в основном состоит из двух компонентов: MemStore и HFile.
Работник зоопарка
HBase Работник зоопарка ZooKeeper — это централизованный сервер мониторинга, который хранит информацию о конфигурации и обеспечивает распределенную синхронизацию. Распределенная синхронизация координирует работу распределенных приложений в кластере, предоставляя услуги координации между узлами. Если клиент хочет взаимодействовать с регионами, ему сначала необходимо обратиться к ZooKeeper.
Это проект с открытым исходным кодом, предоставляющий множество важных сервисов.
Услуги, предоставляемые ZooKeeper:
- Поддерживает информацию о конфигурации.
- Обеспечивает распределенную синхронизацию
- Устанавливает связь клиента с региональными серверами.
- Предоставляет временные узлы, представляющие серверы разных регионов.
- Позволяет главному серверу использовать эти временные узлы для обнаружения доступных серверов в кластере.
- TracСбой сервера ks и разделение сети
Главный узел и подчиненные узлы HBase (серверы регионов) регистрируются в ZooKeeper. Клиенту необходим доступ к конфигурации кворума ZooKeeper (ZK) для подключения к главному узлу и серверам регионов.
В случае отказа нескольких узлов в кластере HBase, кворум ZooKeeper выдает сообщения об ошибках и начинает восстановление вышедших из строя узлов.
HDFS
HDFS — это распределенная система Hadoop. Файловая системаКак следует из названия, она обеспечивает распределенную среду для хранения данных и представляет собой файловую систему, предназначенную для работы на стандартном оборудовании. Каждый файл хранится в нескольких блоках, а для обеспечения отказоустойчивости блоки реплицируются по всему кластеру Hadoop.
HDFS обеспечивает высокую степень отказоустойчивости и работает на недорогом стандартном оборудовании. Добавление узлов в кластер и выполнение обработки и хранения данных с использованием недорогого стандартного оборудования позволяет клиенту получать лучшие результаты по сравнению с существующей конфигурацией.
Здесь данные, хранящиеся в каждом блоке, реплицируются на 3 узлах, поэтому, если какой-либо узел выйдет из строя, потери данных не произойдет; здесь предусмотрен надлежащий механизм резервного копирования и восстановления.
HDFS взаимодействует с компонентами HBase и хранит большие объемы данных в распределенном режиме.
Модель данных HBase
Модель данных HBase представляет собой набор компонентов, состоящий из таблиц, строк, семейств столбцов, ячеек, столбцов и версий. Таблицы HBase содержат семейства столбцов и строки, элементы которых определены как первичные ключи. Столбец в таблице модели данных HBase представляет собой атрибут объектов.
Модель данных HBase состоит из следующих элементов:
- Набор столов
- Каждая таблица с семействами столбцов и строк.
- В каждой таблице должен быть элемент, определенный как первичный ключ.
- В HBase ключ строки выступает в качестве первичного ключа.
- Любой доступ к таблицам HBase осуществляется с использованием этого первичного ключа.
- Каждый столбец в HBase обозначает атрибут, соответствующий объекту.
Варианты использования HBase
Ниже приведены примеры использования HBase с подробным объяснением решений, которые HBase предлагает для различных технических проблем.
| Постановка задачи | Решение |
| Телекоммуникационная отрасль сталкивается со следующими техническими проблемами: хранение миллиардов записей в журналах CDR (Call Detail Record), генерируемых телекоммуникационным доменом; обеспечение доступа к журналам CDR и платежной информации клиентов в режиме реального времени; и предоставление экономически эффективного решения по сравнению с традиционными системами баз данных. | HBase используется для хранения миллиардов строк подробных записей вызовов. Если в существующую базу данных РСУБД будет добавляться 20 ТБ данных в месяц, производительность ухудшится. Для обработки большого объема данных в этом случае лучшим решением является HBase. HBase выполняет быстрые запросы и отображает записи. |
| Банковская отрасль ежедневно генерирует миллионы записей. Кроме того, банковской отрасли необходимо аналитическое решение, способное выявлять мошенничество в денежных операциях. | Для хранения, обработки и обновления огромных объемов данных, а также для проведения аналитики идеальным решением является HBase, интегрированный с несколькими компонентами экосистемы Hadoop. |
Помимо этого, можно использовать HBase:
- Всякий раз, когда возникает необходимость в приложениях, интенсивно использующих запись данных.
- Для проведения онлайн-анализа логов и создания отчетов о соответствии требованиям.
Механизм хранения в HBase
HBase — это столбцово-ориентированная база данных, данные в которой хранятся в таблицах. Таблицы сортируются по RowId. Как показано ниже, в HBase есть RowId, представляющий собой набор нескольких семейств столбцов, присутствующих в таблице.
В схеме присутствуют семейства столбцов, представляющие собой пары ключ-значение. Если присмотреться, каждое семейство столбцов содержит несколько столбцов. Значения столбцов хранятся в дисковой памяти. Каждая ячейка таблицы имеет свои собственные метаданные, такие как метка времени и другая информация.
Ниже показана столбцовая схема хранения данных с ключами строк, семействами столбцов и ячейками.
Ниже приведены ключевые термины, описывающие схему таблицы HBase:
- Таблица: Набор имеющихся строк.
- Строка: Набор семейств столбцов.
- Семейство колонок: Коллекция колонок.
- Столбец: Набор пар ключ-значение.
- Пространство имен: Логическая группаping столов.
- Ячейка: кортеж {строка, столбец, версия}, точно определяющий определение ячейки в HBase.
Столбцово-ориентированные и строкоориентированные хранилища
Столбцово-ориентированные и построчно-ориентированные хранилища данных различаются по механизму хранения. Как известно, традиционные реляционные модели хранят данные в построчном формате, то есть в виде строк данных. Столбцово-ориентированные хранилища хранят таблицы данных в виде столбцов и семейств столбцов.
В таблице ниже приведены некоторые ключевые различия между этими двумя типами хранилищ.
| Столбцовая база данных | Построчно-ориентированная база данных |
| Используется в ситуациях, требующих обработки и анализа данных, например, в онлайн-аналитической обработке и ее приложениях. | В системах онлайн-транзакций, таких как банковская и финансовая сферы, используется именно этот подход. |
| Объем данных, которые можно хранить в этой модели, очень велик, исчисляется петабайтами. | Он рассчитан на небольшое количество строк и столбцов. |
Объяснение чтения и записи данных HBase
Операции чтения и записи с клиентского устройства в HFile показаны на диаграмме ниже.
Шаг 1) Клиент хочет записать данные и, в свою очередь, сначала взаимодействует с сервером регионов, а затем с регионами.
Шаг 2) Регион обращается к MemStore для хранения данных, связанных с семейством столбцов.
Шаг 3) Сначала данные сохраняются в MemStore, где они сортируются, а затем записываются в HFile. Основная причина использования MemStore — хранение данных в распределенной файловой системе на основе ключа строки. MemStore размещается в оперативной памяти сервера регионов, а HFile записываются в 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 в JavaREST, Avro или Thrift | Доступ к данным осуществляется преимущественно через MapReduce (MR) работы |
| Возможно как хранение, так и обработка. | Это предназначено только для складских помещений. |
В некоторых типичных промышленных ИТ-приложениях операции HBase используются вместе с Hadoop. К таким приложениям относятся операции с данными фондовой биржи и данными онлайн-банкинга, где HBase является наиболее подходящим решением. После того, как ваш кластер будет готов, вы можете чтение и запись данных в HBase or установить HBase на новом узле.



