Название | Обработка больших данных |
---|---|
Автор произведения | Джейд Картер |
Жанр | |
Серия | |
Издательство | |
Год выпуска | 2024 |
isbn |
Общая схема HDFS
Имя узла (NameNode)
Расположение: В центре схемы.
Функции: Управляет метаданными (структурой каталогов, размещением блоков и информацией о репликации). Служит центральным координационным элементом.
Данные узлы (DataNodes)
Расположение: Окружает NameNode. Обычно несколько DataNodes.
Функции: Хранят фактические данные в виде блоков и обеспечивают операции чтения и записи.
Блоки данных
Расположение: На DataNodes.
Функции: Файлы делятся на блоки, которые хранятся на разных DataNodes. Каждый блок имеет несколько реплик.
Клиенты
Расположение: Снаружи от NameNode и DataNodes.
Функции: Запрашивают чтение или запись данных в HDFS.
Соединения и поток данных
Связь между клиентами и NameNode
Описание: Клиенты отправляют запросы на NameNode для получения информации о размещении блоков и для доступа к данным.
Связь между NameNode и DataNodes
Описание: NameNode управляет метаданными и информирует DataNodes о том, какие блоки данных где хранятся и каковы их реплики.
Связь между DataNodes
Описание: DataNodes обмениваются информацией о состоянии блоков, например, если необходимо создать новые реплики.
– MapReduce
MapReduce – это мощная модель программирования и фреймворк, разработанный Google для обработки и генерации больших наборов данных в распределенных вычислительных средах. В основе MapReduce лежит простая, но эффективная идея: разбиение задачи на более мелкие, независимые подзадачи, которые могут выполняться параллельно на различных узлах кластера, а затем объединение полученных результатов для получения окончательного ответа. Этот подход позволяет эффективно использовать ресурсы распределённых систем и обрабатывать огромные объёмы данных за относительно короткое время.
MapReduce состоит из двух ключевых этапов: Map и Reduce.
1. Этап Map:
– Функция Map обрабатывает входные данные и преобразует их в набор пар ключ-значение (key-value pairs). Этот процесс можно представить как фильтрацию и сортировку данных. Каждый блок данных из исходного набора данных передаётся в функцию Map, которая производит одну или несколько записей (пар ключ-значение) для дальнейшей обработки.
– Пример: Представьте, что вам нужно посчитать количество каждого слова в большом наборе текстовых документов. Функция Map будет считывать текст, разбивать его на слова и генерировать пары ключ-значение, где ключ – это слово, а значение – единица (1), обозначающая одно появление слова.
2.