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