Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзу по БД.docx
Скачиваний:
81
Добавлен:
12.02.2024
Размер:
257.66 Кб
Скачать
  1. Hbase. Назначение и принцип работы. Архитектура. High Availability конфигурация. Модель данных. Minor и Major Compaction. Регион hBase и его составляющие

Apache HBase – это не реляционная, распределенная база данных с открытым исходным кодом, написанная на языке Java по аналогии BigTable от Google. СУБД относится к категории «семейство столбцов» (wide-column store) и представляет собой колоночно-ориентированное, мультиверсионное хранилище типа «ключ-значение» (key-value) тип должен быть у ключа в таблице HBase массив байт. Она работает поверх распределенной файловой системы HDFS и обеспечивает возможности BigTable для Hadoop, реализуя отказоустойчивый способ хранения больших объёмов разреженных данных.

Назначение HBase заключается в хранении и обработке огромных объемов данных на кластерах серверов. Он основан на модели данных, где данные хранятся в виде таблиц с рядами, которые идентифицируются по ключам.

Принцип работы HBase основан на распределенной архитектуре, где данные хранятся в виде таблиц, которые разбиваются на регионы и распределяются по регион-серверам. Каждый регион-сервер отвечает за набор регионов и обеспечивает доступ к данным через мастер-сервер.

Архитектура HBase включает в себя следующие компоненты:

файл в HBase, в котором хранятся данные таблицы называется Hfile

Регион HBase — это диапазон записей, соответствующих определенному интервалу подряд идущих первичных ключей.

  • Region Server (отвечает за хранение и обработку данных для определенных регионов таблицы)

  • Master Server (управляет распределением регионов по региональным серверам, включая ведение их реестра, управление запусками регулярных задач и другие организационные действия)

  • HMaster (отвечает за управление кластером, назначение регион-серверов, мониторинг состояния регионов и другие административные задачи)

  • Apache ZooKeeper (используется для координации и управления состоянием кластера)

High Availability конфигурация:

Для обеспечения высокой доступности HBase можно сконфигурировать с использованием ряда механизмов и стратегий. Одним из ключевых аспектов высокой доступности является репликация данных. HBase поддерживает автоматическую репликацию данных на несколько регион-серверов, что позволяет обеспечить отказоустойчивость и возможность продолжения работы в случае сбоев.

Для обнаружения сбоев и автоматического восстановления HBase использует механизмы мониторинга состояния кластера. Например, HMaster и ZooKeeper работают в тесном взаимодействии для обеспечения непрерывной работы кластера. Если один из регион-серверов перестает отвечать, HMaster может автоматически переносить его регионы на другие доступные серверы, чтобы минимизировать простои и обеспечить доступ к данным.

Модель данных HBase состоит из следующих компонентов:

  • Table. Таблица HBase состоит из нескольких строк.

  • Row. Каждая строка в HBase содержит ключ и несколько столбцов с данными, связанными с этим ключом. Данные автоматически сортируются по ключу, поэтому важно создавать ключи так, чтобы связанные данные находились рядом друг с другом.

  • Column. Столбец в HBase состоит из семейства столбцов и спецификатора столбца, разделенных символом (двоеточие).

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

  • Column Qualifier. Это спецификация для различных фрагментов данных в пределах семейства столбцов. Например, "content:html" или "content:pdf".

  • Cell. Ячейка представляет собой комбинацию строки, семейства столбцов и спецификатора столбца и содержит значение и метку времени, которая представляет версию значения.

  • Timestamp. Отметка времени записывается рядом с каждым значением и является идентификатором для данной версии значения. По умолчанию отметка времени представляет время на RegionServer, когда данные были записаны.

Рисунок 1 — Модель данных Apache HBase

Minor и Major Compaction:

Так как данные по одному региону могут храниться в нескольких HFile, для ускорения работы Hbase периодически их сливает воедино. Эта операция в Hbase называется compaction. Compaction’ы бывают двух видов:

  • Minor Compaction (объединяет несколько файлов в один, чтобы уменьшить количество файлов и улучшить производительность)

Major Compaction (объединяет все файлы в один, что позволяет удалить устаревшие версии данных и освободить место)

Major происходит дольше, чем Minor

При Major происходит удаление данных с пометкой на удаление, а при Minor - нет

Регион HBase и его составляющие:

Регион HBase — это диапазон записей, соответствующих определенному интервалу подряд идущих первичных ключей. Каждый регион содержит следующие параметры:

  • Persistent Storage — основное хранилище данных в HBase. Данные физически хранятся на HDFS, в специальном формате HFile, отсортированные по значению первичного ключа (RowKey). Одной паре (регион, column family) соответствует как минимум один HFIle.

  • MemStore — специально выделенная область памяти для накопления данных перед записью. Как только MemStore наполнится до некоторого критического значения, создается очередной HFile, куда будут записаны новые данные.

  • BlockCache — кэш на чтение, позволяющий существенно экономить время на часто читаемых данных.

  • Write Ahead Log (WAL) — специальный файл для логирования всех операций с данными, чтобы их можно было восстановить в случае сбоя.

Удаление данных происходит путем записи по ключу специального маркера на удаление