2 min read

Что такое Hadoop, зачем и где применяется

Что такое Hadoop, зачем и где применяется
Фото: Alex Aperios / Unsplash

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