- •Компонент 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 задачи.
- •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. Основные виды операторов.
Компонент Hadoop. Главные сервисы, схема взаимодействия. Пример взаимодействия сервисов Hadoop при выполнении задачи MapReduce.
Apache Hadoop — это платформа, предназначенная для выполнения распределенной обработки больших наборов данных в кластерах компьютеров с использованием простых моделей программирования.
Hadoop включает в себя 4 главных сервиса:
Hadoop Commons: утилиты и программные библиотеки, позволяющие взаимодействовать с Hadoop.
HDFS: распределённая файловая система, предназначенная для хранения очень больших файлов с потоковой схемой доступа к данным в кластерах обычных машин.
Hadoop YARN: платформа для планирования заданий и управления ресурсами кластера.
Hadoop MapReduce: система на основе YARN, предназначенная для параллельной обработки больших наборов данных.
Схема взаимодействия:
Приложение или пользователь отправляют задачу на выполнение в кластере Hadoop.
YARN получает эту задачу и запускает необходимые контейнеры для выполнения задач.
После этого, контейнеры создают соединение с HDFS для доступа к данным, необходимых для выполнения задачи.
При необходимости, может использоваться MapReduce для параллельной обработки данных. При этом, результаты обработки могут быть записаны обратно в HDFS или в другое хранилище данных.
Пример взаимодействия сервисов Hadoop при выполнении задачи MapReduce:
Пользователь запускает MapReduce задачу через YARN, указывая входные данные из HDFS.
YARN выделяет ресурсы на кластере для выполнения задачи и запускает необходимые контейнеры.
Контейнеры получают доступ к входным данным из HDFS и выполняют параллельную обработку данных.
Результаты обработки записываются в HDFS или передаются обратно пользователю.
Hdfs. Архитектура сервиса. Роль DataNode и NameNode. FsImage и Journal. High Availability конфигурация. Виды api.
HDFS — это распределённая файловая система, предназначенная для хранения очень больших файлов с потоковой схемой доступа к данным в кластерах обычных машин.
Основные компоненты архитектуры HDFS включают DataNode, NameNode, FsImage, Journal, а также различные API для работы с данными.
Роль DataNode: Отвечает за хранение блоков данных на узлах кластера,получает инструкции от NameNode и выполняет операции чтения и записи данных по запросу NameNode.
Роль NameNode: Управляет метаданными файловой системы, хранит информацию о распределении блоков данных по узлам DataNode
FsImage — это снимок состояния файловой системы, который содержит информацию о метаданных, такую как структура файлов и каталогов. FsImage загружается при старте NameNode.
Journal — это журнал транзакций, в который записываются все транзакции, связанные с изменением метаданных (создание, изменение, удаление файлов). Журнал позволяет восстанавливать метаданные после сбоя без необходимости перезагрузки полного FsImage.
High Availability — это конфигурация в HDFS, направленная на снижение рисков потери данных и обеспечение быстрого восстановления в случае отказа одного из NameNode'ов. В рамках High Availability используются два NameNode'a:
1. Active NameNode: обрабатывает запросы на операции с файлами и хранит актуальные метаданные о распределении блоков данных.
2. Standby NameNode: находится в режиме ожидания и регулярно синхронизирует свои метаданные с Active NameNode. В случае сбоя Active NameNode, Standby NameNode переходит в активное состояние, минимизируя простои и обеспечивая непрерывную доступность.
Виды API в HDFS:
HDFS shell (аналог Unix shell, но для HDFS)
HDFS Java API
HDFS Web API / Web UI
