Архитектура HBase, компоненты, модель данных и варианты использования

Содержание:

Anonim

Механизм хранения в HBase

HBase - это база данных, ориентированная на столбцы, и данные хранятся в таблицах. Таблицы отсортированы по RowId. Как показано ниже, HBase имеет RowId, который представляет собой набор из нескольких семейств столбцов, присутствующих в таблице.

Семейства столбцов, представленные в схеме, представляют собой пары "ключ-значение". Если мы подробно рассмотрим каждое семейство столбцов, имеющее несколько номеров столбцов. Значения столбца сохраняются в дисковой памяти. Каждая ячейка таблицы имеет свои собственные метаданные, такие как отметка времени и другая информация.

Механизм хранения в HBase

В HBase следующие ключевые термины, представляющие схему таблицы.

  • Таблица : Коллекция имеющихся строк.
  • Строка : Коллекция семейств столбцов.
  • Семейство столбцов : Коллекция столбцов.
  • Столбец : коллекция пар "ключ-значение".
  • Пространство имен : логическая группировка таблиц.
  • Ячейка : Кортеж {строка, столбец, версия} точно определяет определение ячейки в HBase.

В этом руководстве вы узнаете,

  • Механизм хранения в HBase
  • Модель данных HBase
  • Архитектура HBase и ее важные компоненты
  • Объяснение чтения и записи данных HBase
  • Примеры использования HBase
  • HBASE против HDFS

Хранилища, ориентированные на столбцы, и хранилища, ориентированные на строки

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

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

Колонно-ориентированная база данных Строчная база данных
  • Когда дело касается процессов и аналитики, мы используем этот подход. Такие как онлайн-аналитическая обработка и ее приложения.
  • Этот подход используется в процессах онлайн-транзакций, таких как банковское дело и финансы.
  • Объем данных, которые можно хранить в этой модели, очень велик, например, в петабайтах.
  • Он рассчитан на небольшое количество строк и столбцов.

Модель данных HBase

Модель данных 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
  • Memstore для каждого магазина для каждого региона для таблицы
  • Он сортирует данные перед сбросом в HFiles.
  • Производительность записи и чтения увеличится из-за сортировки
StoreFile StoreFiles для каждого магазина для каждого региона для таблицы
Блокировать Блоки присутствуют внутри StoreFiles

Примеры использования HBase

Ниже приведены примеры использования HBase с подробным объяснением решения, которое он предоставляет для различных технических проблем.

Постановка задачи Решение
Телекоммуникационная отрасль сталкивается со следующими техническими проблемами
  • Хранение миллиардов записей журнала CDR (подробная запись звонков), созданных телекоммуникационным доменом
  • Предоставление доступа в режиме реального времени к журналам CDR и платежной информации клиентов
  • Предоставлять экономичное решение по сравнению с традиционными системами баз данных
HBase используется для хранения миллиардов строк подробных записей о звонках. Если в существующую базу данных СУБД добавляется 20 ТБ данных в месяц, производительность ухудшится. Для обработки большого количества данных в этом случае лучше всего подходит HBase. HBase выполняет быстрые запросы и отображает записи.
Банковская индустрия генерирует миллионы записей на ежедневной основе. В дополнение к этому банковскому сектору также необходимо аналитическое решение, которое может обнаруживать мошенничество в денежных транзакциях. Идеальное решение для хранения, обработки и обновления огромных объемов данных и выполнения аналитики - HBase, интегрированный с несколькими компонентами экосистемы Hadoop.

Кроме того, можно использовать HBase.

  • Всякий раз, когда возникает необходимость писать тяжелые приложения.
  • Выполнение онлайн-аналитики журналов и создание отчетов о соответствии.

HBase против HDFS

HBase работает поверх HDFS и Hadoop. Некоторые ключевые различия между HDFS и HBase заключаются в операциях с данными и их обработке.

HBASE

HDFS

  • Операции с низкой задержкой
  • Операции с высокой задержкой
  • Случайное чтение и запись
  • Пишите один раз Прочитайте много раз
  • Доступ через команды оболочки, клиентский API в Java, REST, Avro или Thrift
  • Доступ в основном осуществляется через задания MR (Map Reduce)
  • Хранение и обработка могут быть выполнены
  • Только для складских помещений

Некоторые типичные промышленные ИТ-приложения используют операции HBase вместе с Hadoop. Приложения включают данные фондовой биржи, операции с данными онлайн-банкинга, а обработка Hbase является наиболее подходящим методом решения.

Резюме

Hbase - это одна из распределенных баз данных NoSql, ориентированных на столбцы, доступная в Apache Foundation. HBase обеспечивает большую производительность для получения меньшего количества записей, чем Hadoop или Hive. Найти любое входное значение очень легко, потому что он поддерживает индексацию, транзакции и обновление.

Мы можем выполнять онлайн-аналитику в реальном времени, используя Hbase, интегрированную с экосистемой Hadoop. Он имеет автоматическое и настраиваемое сегментирование для наборов данных или таблиц и предоставляет спокойные API для выполнения заданий MapReduce.