Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзу по БД.docx
Скачиваний:
20
Добавлен:
12.02.2024
Размер:
257.66 Кб
Скачать

Ответы к экзамену по большим данным

  1. Компонент Hadoop. Главные сервисы, схема взаимодействия. Пример взаимодействия сервисов Hadoop при выполнении задачи MapReduce.

Apache Hadoop — это платформа, предназначенная для выполнения распределенной обработки больших наборов данных в кластерах компьютеров с использованием простых моделей программирования.

Hadoop включает в себя 4 главных сервиса:

  • Hadoop Commons: утилиты и программные библиотеки, позволяющие взаимодействовать с Hadoop.

  • HDFS: распределённая файловая система, предназначенная для хранения очень больших файлов с потоковой схемой доступа к данным в кластерах обычных машин.

  • Hadoop YARN: платформа для планирования заданий и управления ресурсами кластера.

  • Hadoop MapReduce: система на основе YARN, предназначенная для параллельной обработки больших наборов данных.

Схема взаимодействия:

  • Приложение или пользователь отправляют задачу на выполнение в кластере Hadoop.

  • YARN получает эту задачу и запускает необходимые контейнеры для выполнения задач.

  • После этого, контейнеры создают соединение с HDFS для доступа к данным, необходимых для выполнения задачи.

При необходимости, может использоваться MapReduce для параллельной обработки данных. При этом, результаты обработки могут быть записаны обратно в HDFS или в другое хранилище данных.

Пример взаимодействия сервисов Hadoop при выполнении задачи MapReduce:

  1. Пользователь запускает MapReduce задачу через YARN, указывая входные данные из HDFS.

  2. YARN выделяет ресурсы на кластере для выполнения задачи и запускает необходимые контейнеры.

  3. Контейнеры получают доступ к входным данным из HDFS и выполняют параллельную обработку данных.

  4. Результаты обработки записываются в HDFS или передаются обратно пользователю.

  1. Hdfs. Архитектура сервиса. Роль DataNode и NameNode. FsImage и Journal. High Availability конфигурация. Виды api.

HDFS — это распределённая файловая система, предназначенная для хранения очень больших файлов с потоковой схемой доступа к данным в кластерах обычных машин.

Основные компоненты архитектуры HDFS включают DataNode, NameNode, FsImage, Journal, а также различные API для работы с данными.

Роль DataNode: это демон, который Отвечает за хранение блоков данных на узлах кластера,получает инструкции от NameNode и выполняет операции чтения и записи данных по запросу NameNode.

Роль NameNode:  демон, который является Главный узел управляет пространством имён файловой системы, хранит «карту» распределения файлов по блокам и их метаданные. Например, имена файлов и каталогов. Кроме хранения метаданных, NameNode управляет данными — разделяет их на блоки стандартного размера и распределяет по узлам данных в кластере.

FsImage — это снимок состояния файловой системы, который содержит информацию о метаданных, такую как структура файлов и каталогов. FsImage загружается при старте NameNode.

Journal — это журнал транзакций, в который записываются все транзакции, связанные с изменением метаданных (создание, изменение, удаление файлов). Журнал поддерживает устойчивость к сбоям, поскольку запись в него происходит перед тем, как соответствующие изменения в метаданных внесены в файловую систему. Журнал позволяет восстанавливать метаданные после сбоя без необходимости перезагрузки полного FsImage.

Вторичный главный узел (Secondary NameNode): Вторичный главный узел поддерживает актуальной собственную копию FSImage, периодически получая файлы EditLogs из NameNode. Это ускоряет работу системы при перезапуске. Важно! Вторичный главный узел не является резервной копией главного узла, то есть не может быть использован для его восстановления в случае критических ошибок.

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)

  • есть обёртка на Python

  • HDFS Java API

  • HDFS Web API / Web UI