Массовая загрузка данных в HBase

В HBase типовая последовательность записи данных включает следующие шаги: WAL → MemStore → HFiles. Это работает хорошо в обычном режиме, но при загрузке очень большого объема данных такая последовательность ведет к значительному снижению производительности. К основным проблемами относятся следующие:

  • Повышенные требования к объему области памяти MemStore и журнала WAL.

  • Увеличение очередей на операции сжатия (compaction) и очистки (flush).

  • Как следствие, увеличенная задержка, приводящая к нарушению договоренностей о качестве обслуживания (SLA).

Массовая загрузка (bulk loading) направлена на решение этих проблем. Она представляет собой процесс подготовки и загрузки данных напрямую в файлы HFiles в системе HDFS, избегая стандартные стадии записи. Такой способ позволяет вносить в базу большие объемы данных гораздо быстрее. Он может быть полезен при загрузке данных из внешних источников или для последовательной загрузки партий данных, образуемых в процессе выполнения длительных автоматических ночных задач.

Массовая загрузка — это процесс ETL, включающий следующие три основные стадии:

  1. Извлечение (Extract). На этой стадии процесс извлекает данные из внешнего источника и сохраняет его в HDFS. Источниками могут быть содержимое другой базы данных (database dump) или файлы журналов в формате простого текста, CSV или другого формата. HBase не управляет этой частью процесса.

  2. Преобразование (Transform). На этой стадии процесс преобразует данные в формат HFile в соответствие со структурой предварительно созданной таблицы HBase: в каждом регионе он создает один HFile. Данные отсортированы в алфавитном порядке и разделены по файлам с помощью заданных точек деления (split points). Этот шаг обычно требует запуска задания MapReduce, которое и выполняет разделение данных на партиции, сортировку, генерацию класса вида ключ/значение, обеспечение требований к формату HFile и другие операции.

  3. Загрузка (Load). На этой стадии процесс перемещает данные в таблицу HBase, обеспечивая загрузку каждого файла в соответствующий регион с помощью Region Server, который обслуживает этот регион.

Типовая схема массовой загрузки данных
Типовая схема массовой загрузки данных
Типовая схема массовой загрузки данных
Типовая схема массовой загрузки данных

Существует много способов настройки массовой загрузки данных в HBase, включая использование встроенных задач MapReduce, собственных (custom) задач MapReduce, Spark и других.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней