
- •Ответы к экзамену по большим данным
- •Компонент Hadoop. Главные сервисы, схема взаимодействия. Пример взаимодействия сервисов Hadoop при выполнении задачи MapReduce.
- •Hdfs. Архитектура сервиса. Роль DataNode и NameNode. FsImage и Journal. High Availability конфигурация. Виды api.
- •Hdfs. Worm подход. Почему hdfs не любит маленькие файлы? Почему Secondary NameNode нельзя считать backup Node?
- •MapReduce. Стадии обработки клиентского запроса. Оптимизаторы: Combiner, Partitioner, Comparator с примерами использования. Хранение файлов до, вовремя и после выполнения запроса.
- •Yarn. Основные сервисы. Архитектура компонента. High Availability конфигурация. Пример выполнения запроса при обработке MapReduce задачи.
- •Пример выполнения запроса при обработке MapReduce задачи:
- •Yarn. Виды scheduler’ов. Fifo, Fair, Capacity. Достоинства и недостатки. Механизм очередей.
- •Hive. Назначение и принцип работы. Архитектура. High Availability конфигурация. Разница между schema-on-write и schema-on-read. Разница между managed и external таблицами.
- •Hive. Оптимизация работы. Партиции и бакеты: принцип работы. Формулы для распределения записей. Плюсы и минусы применения.
- •Hbase. Назначение и принцип работы. Архитектура. High Availability конфигурация. Модель данных. Minor и Major Compaction. Регион hBase и его составляющие
- •Spark. Назначение и принцип работы. Отличия от MapReduce. Архитектура. Основные api. Виды планировщиков в Spark.
- •Spark. Библиотека Spark Core. Spark rdd. 2 типа операций над rdd. Lazy Evaluation. Типы трансформаций. Lineage. Использование cache, разница между cache и persist.
- •Apache Kafka. Партиции и топики. Репликация данных. Распределение данных в топиках. Leader-follower архитектура. N-sync реплики. Удаление данных из Kafka.
- •Airflow. Назначение и принцип работы. Dag. Сущности Operator и Sensor. Основные виды операторов.
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) — специальный файл для логирования всех операций с данными, чтобы их можно было восстановить в случае сбоя.
Удаление данных происходит путем записи по ключу специального маркера на удаление