Что такое Hadoop, зачем и где применяется
Hadoop — это платформа Apache с открытым исходным кодом, написанная на языке Java, которая позволяет выполнять распределенную обработку больших наборов данных в кластерах компьютеров с использованием простых моделей программирования. Приложение работает в среде, которая обеспечивает распределенное хранение и вычисления между кластерами компьютеров. Hadoop предназначен для масштабирования от одного сервера до тысяч машин, каждая из которых предлагает локальные вычисления и хранилище.
Архитектура
По своей сути Hadoop имеет два основных уровня, а именно:
- Слой обработки/вычисления (MapReduce)
- Слой хранения (распределенная файловая система Hadoop)

MapReduce
MapReduce — это модель параллельного программирования для написания распределенных приложений, разработанная в Google для эффективной обработки больших объемов данных (многотерабайтных наборов данных) на больших кластерах (тысячи узлов) стандартного оборудования надежным и отказоустойчивым способом.
HDFS
Распределенная файловая система Hadoop (HDFS) основана на файловой системе Google (GFS) и предоставляет систему, предназначенную для работы на обычном оборудовании. Она имеет много общего с существующими распределенными файловыми системами. Однако отличия от других распределенных файловых систем существенны. Она обладает высокой отказоустойчивостью и предназначена для развертывания на недорогом оборудовании, обеспечивает высокоскоростной доступ к данным приложений и подходит для приложений, имеющих большие наборы данных.
Помимо двух вышеупомянутых основных компонентов, среда Hadoop также включает в себя следующие два модуля:
- Hadoop Common — это библиотеки и утилиты Java, необходимые для других модулей Hadoop
- Hadoop YARN — это платформа для планирования заданий и управления ресурсами кластера.
Как работает Hadoop?
Довольно дорого создавать большие серверы с тяжелыми конфигурациями, которые выполняют крупномасштабную обработку, но в качестве альтернативы вы можете связать вместе множество обычных компьютеров с одним центральным процессором в единую функциональную распределенную систему, и практически кластерные машины могут считывать набор данных. параллельно и обеспечивают гораздо более высокую пропускную способность. Более того, это дешевле, чем один высокопроизводительный сервер. Таким образом, это первый мотивационный фактор использования Hadoop, который работает на кластерных и недорогих машинах.
Hadoop запускает код в кластере компьютеров. Этот процесс включает в себя следующие основные задачи:
- Данные изначально разделены на каталоги и файлы. Файлы разделены на блоки одинакового размера по 128M и 64M
- Затем эти файлы распределяются по различным узлам кластера для дальнейшей обработки
- HDFS, находящаяся поверх локальной файловой системы, контролирует обработку
- Блоки реплицируются для обработки аппаратных сбоев
- Проверяется успешность выполнения кода
- Выполняется сортировка, которая происходит между этапами карты и сокращения
- Отправка отсортированных данных на определенный компьютер
- Создаются логи для отладки.
Автор оригинальной статьи: tutorialspoint.com