Механизм хранения в 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
- HRegions
- Работник зоопарка
- HDFS
HMaster:
HMaster в HBase - это реализация главного сервера в архитектуре HBase. Он действует как агент мониторинга для мониторинга всех экземпляров Region Server, присутствующих в кластере, и действует как интерфейс для всех изменений метаданных. В распределенной кластерной среде Master работает на NameNode. Мастер запускает несколько фоновых потоков.
Ниже перечислены важные роли, которые выполняет HMaster в HBase.
- Играет жизненно важную роль с точки зрения производительности и обслуживания узлов в кластере.
- HMaster обеспечивает административную работу и распределяет услуги по серверам в разных регионах.
- HMaster назначает регионы региональным серверам.
- HMaster имеет такие функции, как управление балансировкой нагрузки и аварийное переключение для обработки нагрузки на узлы, присутствующие в кластере.
- Когда клиент хочет изменить какую-либо схему и какие-либо операции с метаданными, HMaster берет на себя ответственность за эти операции.
Некоторые из методов, предоставляемых интерфейсом HMaster, в основном являются методами, ориентированными на метаданные.
- Таблица (createTable, removeTable, включить, отключить)
- ColumnFamily (добавить столбец, изменить столбец)
- Регион (переместить, назначить)
Клиент двусторонне общается как с HMaster, так и с ZooKeeper. Для операций чтения и записи он напрямую связывается с серверами HRegion. HMaster назначает регионы региональным серверам и, в свою очередь, проверяет состояние работоспособности региональных серверов.
Во всей архитектуре у нас есть несколько региональных серверов. Hlog присутствует на региональных серверах, которые будут хранить все файлы журналов.
Серверы регионов HBase:
Когда HBase Region Server получает запросы записи и чтения от клиента, он назначает запрос определенной области, где находится фактическое семейство столбцов. Однако клиент может напрямую связываться с серверами HRegion, нет необходимости в обязательном разрешении HMaster для клиента в отношении связи с серверами HRegion. Клиенту требуется помощь HMaster, когда требуются операции, связанные с изменениями метаданных и схемы.
HRegionServer - это реализация сервера региона. Он отвечает за обслуживание и управление регионами или данными, которые присутствуют в распределенном кластере. Серверы региона работают на узлах данных, присутствующих в кластере Hadoop.
HMaster может связываться с несколькими серверами HRegion и выполнять следующие функции.
- Хостинг и управление регионами
- Автоматическое разделение регионов
- Обработка запросов на чтение и запись
- Общение с клиентом напрямую
Регионы HBase:
HRegions - это основные строительные элементы кластера HBase, который состоит из распределения таблиц и состоит из семейств столбцов. Он содержит несколько хранилищ, по одному для каждого семейства столбцов. Он состоит в основном из двух компонентов: Memstore и Hfile.
Работник зоопарка:
HBase Zookeeper - это централизованный сервер мониторинга, который хранит информацию о конфигурации и обеспечивает распределенную синхронизацию. Распределенная синхронизация - это доступ к распределенным приложениям, работающим в кластере, с ответственностью за предоставление услуг координации между узлами. Если клиент хочет общаться с регионами, клиент сервера должен сначала обратиться к ZooKeeper.
Это проект с открытым исходным кодом, и он предоставляет так много важных услуг.
Услуги, предоставляемые ZooKeeper
- Сохраняет информацию о конфигурации
- Обеспечивает распределенную синхронизацию
- Установление связи клиента с региональными серверами
- Предоставляет эфемерные узлы, которые представляют серверы разных регионов.
- Мастер-серверы удобство использования временных узлов для обнаружения доступных серверов в кластере
- Для отслеживания сбоев сервера и сетевых разделов
Ведущие и ведомые узлы HBase (региональные серверы) зарегистрировались в ZooKeeper. Клиенту необходим доступ к конфигурации кворума ZK (zookeeper) для соединения с главным и региональным серверами.
Во время отказа узлов, присутствующих в кластере HBase, ZKquoram инициирует сообщения об ошибках и начинает восстанавливать отказавшие узлы.
HDFS:
HDFS - это распределенная файловая система Hadoop, поскольку из названия следует, что она обеспечивает распределенную среду для хранилища и представляет собой файловую систему, разработанную для работы на стандартном оборудовании. Каждый файл хранится в нескольких блоках, и для обеспечения отказоустойчивости блоки реплицируются в кластере Hadoop.
HDFS обеспечивает высокую степень отказоустойчивости и работает на дешевом стандартном оборудовании. Добавляя узлы в кластер и выполняя обработку и хранение с использованием дешевого стандартного оборудования, это даст клиенту лучшие результаты по сравнению с существующим.
Здесь данные, хранящиеся в каждом блоке, реплицируются на 3 узла, в любом случае, когда какой-либо узел выходит из строя, не будет потери данных, у него будет надлежащий механизм восстановления резервной копии.
HDFS контактирует с компонентами HBase и хранит большой объем данных распределенным образом.
Объяснение чтения и записи данных HBase
Операции чтения и записи из клиента в Hfile могут быть показаны на диаграмме ниже.
Шаг 1) Клиент хочет записать данные и, в свою очередь, сначала связывается с сервером регионов, а затем с регионами.
Шаг 2) Области, связывающиеся с memstore для хранения, связанного с семейством столбцов
Шаг 3) Сначала данные сохраняются в Memstore, где данные сортируются, а после этого они сбрасываются в HFile. Основная причина использования Memstore - хранить данные в распределенной файловой системе на основе ключа строки. Memstore будет помещен в основную память сервера региона, а H-файлы будут записаны в HDFS.
Шаг 4) Клиент хочет читать данные из регионов
Шаг 5) В свою очередь, клиент может иметь прямой доступ к хранилищу Mem и запрашивать данные.
Шаг 6) Клиент обращается к HFiles за данными. Данные извлекаются и извлекаются Клиентом.
Memstore хранит модификации магазина в памяти. Иерархия объектов в регионах HBase показана сверху вниз в таблице ниже.
Стол | Таблица HBase присутствует в кластере HBase |
Область, край | HRegions для представленных таблиц |
Магазин | Он хранит в ColumnFamily для каждого региона таблицы |
Memstore |
|
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.