
- •Ответы к экзамену по большим данным
- •Компонент 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. Основные виды операторов.
Yarn. Основные сервисы. Архитектура компонента. High Availability конфигурация. Пример выполнения запроса при обработке MapReduce задачи.
YARN — это фреймворк для управления ресурсами и планирования задач в кластере Hadoop. Он предоставляет средства для управления вычислительными ресурсами и выполнения приложений на кластере.
Основные сервисы YARN сосредоточены внутри компонентов ResourceManager и NodeManager. В ResourceManager — это сервисы ResourceSheduler и ApplicationManager, в NodeManager — это сервис ContainerManager:
ResourceSheduler отвечает за распределение ресурсов между различными приложениями в кластере и управляет очередью задач.
ApplicationManager взаимодействует с ResourceScheduler для запроса ресурсов и отслеживает выполнение приложений.
ContainerManager запускает, останавливает и мониторит контейнеры, предоставляя им необходимые ресурсы.
Архитектура YARN состоит из следующих основных компонентов:
ResourceManager: управляет распределением ресурсов в кластере.
NodeManager: отвечает за выполнение задачи на каждом узле данных.
ApplicationMaster: управляет жизненным циклом пользовательских заданий и потребностями отдельных приложений в ресурсах.
Container: пакет физических ресурсов (ЦП, память, диск, сеть) в одном вычислительном узле кластера.
В конфигурации High Availability для YARN используется активно-пассивный подход, где есть один активный (active) и один или несколько резервных (standby) компонентов. Активный компонент обрабатывает запросы и управляет ресурсами, в то время как резервный компонент остается в режиме ожидания, готовым принять управление в случае отказа активного компонента.
Пример выполнения запроса при обработке MapReduce задачи:
Пользователь отправляет MapReduce задачу на выполнение с использованием клиентской команды
ResourceManager принимает запрос и регистрирует приложение.
ResourceManager использует Scheduler для назначения ресурсов для выполнения Map и Reduce задач.
NodeManager на каждом узле кластера получает задачи для выполнения и запускает соответствующие контейнеры.
Контейнеры выполняют Map и Reduce задачи, обрабатывая данные на узлах и обмениваясь результатами.
По завершении задач, результаты передаются обратно ResourceManager, который сообщает пользователю о завершении задачи.
Yarn. Виды scheduler’ов. Fifo, Fair, Capacity. Достоинства и недостатки. Механизм очередей.
YARN — это фреймворк для управления ресурсами и планирования задач в кластере Hadoop. Он предоставляет средства для управления вычислительными ресурсами и выполнения приложений на кластере.
Существует 3 вида scheduler’ов, которые отвечают за планирование рабочих процессов YARN. Ниже приведены их описания, достоинства и недостатки:
FIFO (First input first output) – самый простой, который запускает приложения в порядке подачи, помещая их в очередь. Приложение, отправленное первым, сначала получает ресурсы, а по его завершении планировщик обслуживает следующее приложение в очереди. FIFO не подходит для общих кластеров, поскольку большие приложения будут занимать все ресурсы, а очереди станут длиннее из-за более низкой скорости обслуживания.
Достоинства:
Прост в реализации и использовании.
Подходит для простых сценариев, где не требуется сложного управления ресурсами.
Недостатки:
Не обеспечивает оптимальное распределение ресурсов (неправильное распределение приоритетов).
Может привести к проблемам с производительностью при наличии разнородных задач.
Fair Scheduler – самый продвинутый вариант планировщика с учетом приоритетности заданий, который стремится распределить ресурсы так, чтобы все запущенные приложения получили одинаковую долю.
Fair Scheduler позволяет приложениям YARN совместно и динамически использовать ресурсы в большом кластере Hadoop без предварительного указания их емкости.
Достоинства:
Обеспечивает справедливое распределение ресурсов.
Подходит для сред разнородных задач и приложений.
Недостатки:
Может потребовать дополнительной конфигурации для достижения оптимальной производительности.
Не всегда подходит для всех типов рабочих нагрузок.
Capacity Scheduler – это планировщик, который предоставляет разделение ресурсов кластера между различными пользователями и/или группами. Каждая группа получает фиксированный объем ресурсов, который не может быть превышен другими группами.
Достоинства:
Гибкость в управлении ресурсами для различных групп пользователей.
Подходит для кластеров с множеством пользователей и приложений.
Недостатки:
Может потребовать сложной конфигурации для оптимальной работы.
Может быть сложным в настройке и поддержке.
Механизм очередей в YARN представляет собой функциональность, которая обеспечивает управление доступом приложений к ресурсам в распределенном кластере, устанавливает приоритеты, предоставляет гибкость настройки и позволяет администраторам кластера эффективно управлять рабочими нагрузками.
Основные аспекты механизма очередей в YARN:
Очереди:
Каждая очередь представляет собой логическую единицу, которая может быть настроена с определенными параметрами, такими как приоритет, лимиты ресурсов, максимальное время выполнения и другие.
Очереди могут быть созданы и настроены для различных групп пользователей, приложений или для обработки определенного типа задач.
Иерархия очередей:
Механизм очередей в YARN поддерживает иерархию очередей, что позволяет создавать структуру из вложенных очередей. Это предоставляет дополнительные уровни управления и группировки для приложений с разными характеристиками и приоритетами.
Иерархия очередей обеспечивает гибкость в настройке и управлении ресурсами на разных уровнях кластера.
Приоритеты:
Очереди в YARN могут иметь различные уровни приоритета. Приложения в очереди с более высоким приоритетом получают приоритетное выделение ресурсов перед теми, у которых приоритет ниже.
Приоритеты позволяют администраторам управлять важностью выполнения различных приложений в кластере.
Лимиты ресурсов:
Каждая очередь может иметь ограничения по доступным ресурсам.
Данный аспект обеспечивает контроль над использованием ресурсов и предотвращает чрезмерное использование ресурсов одной очереди за счет другой.
Динамическая настройка:
Механизм очередей в YARN поддерживает динамическую настройку параметров очередей без перезапуска кластера. Это позволяет администраторам быстро адаптироваться к изменяющимся требованиям и оптимизировать использование ресурсов.
Планировщики Fair Scheduler и Capacity Scheduler:
Оба планировщика используют механизм очередей для управления ресурсами. Fair Scheduler стремится к справедливому распределению, в то время как Capacity Scheduler управляет ресурсами с учетом предварительно заданных лимитов для каждой очереди.