Содержание:

  1. Обзор
  2. Почему Hadoop для больших данных?
  3. В чем разница между Hadoop 1.0 и Hadoop 2.0?
  4. В чем сходство между Hadoop 1.0 и Hadoop 2.0?
  5. Недостатки Hadoop 1.0 перечислены ниже.
  6. Введение в MapReduce
  7. NameNode и диспетчер ресурсов
  8. MapReduce Внутреннее функционирование
  9. Ключевые термины в MapReduce
  10. Часто задаваемые вопросы на собеседовании
  11. Путь вперед

Прежде чем изучать MapReduce, важно знать об архитектуре Hadoop. В этом блоге мы изучим ключевые понятия о Hadoop, его архитектуре и MapReduce.

Почему Hadoop для больших данных?

Hadoop — это программная среда, предоставляющая распределенную среду для хранения и обработки больших данных. Он предназначен для масштабирования от одного сервера до нескольких машин. Его библиотека также предоставляет возможность локального хранения для обработки сбоев.

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

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

Hadoop 1.0 и Hadoop 2.0

В чем разница между Hadoop 1.0 и Hadoop 2.0?

  • Внедрение YARN — одно из основных изменений в Hadoop 2.0. YARN (Yet Another Resource Negotiator) разделяет управление Rosurce и обработку данных, что позволяет использовать более гибкие инструменты аналитики, такие как Spark, Tez и т. д.
  • Высокая доступность: службы Hadoop доступны даже в случае сбоя оборудования или программного обеспечения. Hadoop 2.0 обеспечивает автоматическую отработку отказа для узла имени.
  • Улучшенная производительность. Производительность Hadoop 2.0 немного выше, чем у Hadoop 1.0. Он обеспечивает лучшее планирование для небольших файлов, лучшую локализацию данных и лучшую поддержку узлов с несколькими именами.
  • Совместимость: приложения, написанные на Hadoop 1.0, могут успешно работать на Hadoop 2.0 без каких-либо изменений.
  • Безопасность: Hadoop 2.0 предоставляет улучшенные функции безопасности.

В чем сходство между Hadoop 1.0 и Hadoop 2.0?

  • Обе версии являются программным обеспечением с открытым исходным кодом.
  • Обе версии поддерживают HDFS (распределенную файловую систему Hadoop), которая предоставляет масштабируемые и надежные файловые системы для хранения больших данных.
  • Обе версии поддерживают модель программирования MapReduce, которая поддерживает распределенную обработку больших данных. Но в Hadoop 2.0 архитектура MapReduce была реструктурирована, и был введен YARN, чтобы обеспечить большую гибкость и повысить эффективность модели обработки Hadoop.

Более того, Hadoop 2.0 обеспечивает лучшую гибкость, лучшую масштабируемость и улучшенную производительность для обработки больших данных и корпоративных сред.

Недостаток Hadoop 1.0 указан ниже:

  1. Медленная обработка данных
  2. Он поддерживает только пакетную обработку
  3. Нет обработки данных в реальном времени
  4. Нет абстракции данных

5. Задержка

На изображении видно, что мы можем передать несколько задач главному узлу. А главный узел распределяет задания по разным рабочим/подчиненным узлам. Одна задача обрабатывается на разных узлах, и после завершения процесса каждый узел отправляет выходные данные на главный узел, а главный узел объединяет результаты на основе уникальных ключей каждой задачи.

Введение в MapReduce

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

1. Фаза карты и

2. Уменьшить фазу

  • Задание MapReduce делит входные данные на независимые фрагменты, называемые входными разбиениями или просто разбиениями, которые обрабатываются задачами карты параллельно.
  • Инфраструктура MapReduce сортирует выходные данные карт, которые затем вводятся в задачи редуктора, которые производят окончательный результат.
  • Платформа MapReduce заботится о планировании задач, их мониторинге и повторном выполнении невыполненных задач.
  • YARN (еще один механизм согласования ресурсов) был представлен в Hadoop 2.0 для улучшения реализации MapReduce. Эта структура в Hadoop 2 состоит из ResourceManager и NodeManager в качестве главного и подчиненного соответственно.

  • NameNode также называется рабочим узлом или подчиненным узлом
  • Менеджер ресурсов – это главный узел

ResourceManager определяет, что ресурсы должны быть выделены для всех заданий, представленных в системе.

ResourceManager состоит из двух основных компонентов:

1. Планировщик и

2. Менеджер приложений

Планировщик отвечает за распределение ресурсов для различных запущенных заданий в зависимости от доступности и других условий.

Планировщик использует контейнер ресурсов, который в основном состоит из ЦП, памяти, диска и т. д. Контейнер ресурсов остается на абстрактном уровне.

ApplicationsManager отвечает за прием отправленных заданий.

ApplicationManager несет ответственность за:

1. Согласование соответствующих контейнеров ресурсов с планировщиком,

2. Отслеживание их статуса и

3. Мониторинг прогресса для конкретной работы.

ApplicationsManager также предоставляет сервис для перезапуска контейнера ApplicationManager в случае сбоя.

NodeManager: это процесс, который выполняется на рабочих узлах. Он отвечает за свои контейнеры, отслеживает использование их ресурсов и сообщает об этом в ApplicationManager.

Внутреннее функционирование MapReduce

Фреймворк MapReduce работает исключительно с парами.

(вход) ›map › уменьшить › (выход)

Он принимает входные данные для задания в виде набора пар.

Он выдает результат в виде набора пар.

Входной ключ и значение и выходной ключ и значение могут иметь разные типы данных. Таким образом, каждая фаза имеет пары ключ-значение в качестве входных и выходных данных, типы которых могут быть выбраны программистом в соответствии с требованиями.

Ключевые термины в MapReduce:

Сопоставитель

Функция карты представлена ​​классом Mapper, который объявляет абстрактный метод map().

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

Редуктор

Функция Reduce аналогично определяется с использованием Reducer с четырьмя параметрами типа для указания типов ввода и вывода.

Типы ввода функции сокращения должны соответствовать типам вывода функции карты.

Драйвер

Драйвер запускает задание MapReduce

Задание, которое должно выполняться в кластере Hadoop, будет упаковано в виде файла JAR. Hadoop будет распространяться по всему кластеру.

До сих пор мы узнали так много основных понятий о Hadoop и MapReduce. Пришло время задать несколько вопросов, которые очень часто задают на собеседованиях.

Вопрос 1.

Что такое MapReduce и чем он отличается от PySpark?

Вопрос 2.

Перечислите основные компоненты задания MapReduce.

Ответ: 1. Картограф, 2. Редюсер, 3. Драйвер

Вопрос 3.

Объясните перетасовку и сортировку в MapReduce.

Ответ: Перетасовка и сортировка выполняются в процессе работы картографа и редуктора. Процесс перетасовки служит входом для редуктора. Перетасовка — это процесс передачи данных от маппера к редуктору.

После маппера вывод пары ключ-значение автоматически сортируется перед передачей в редьюсер. Это процесс сортировки.

Вопрос 4.

Какие параметры у маппера и редуктора?

Ответ: Параметры картографа перечислены ниже:

LongWritable (входные данные)

текст (входные данные)

текст (промежуточные выходные данные)

IntWritable (промежуточные выходные данные)

Четыре параметра редуктора перечислены ниже:

Текст (промежуточные выходные данные)

IntWritable (промежуточные выходные данные)

Текст (окончательные выходные данные)

IntWritable (окончательные выходные данные)

Вопрос 5.

Что такое сердцебиение в Hadoop?

Это сигнал, используемый между узлом имени и узлом данных, а также между средством отслеживания задач и средством отслеживания заданий.

Если узел «Имя» или средство отслеживания заданий не отвечает на сигнал, считается, что в узле данных или средстве отслеживания задач возникли проблемы.

Вопрос 6.

что такое JobTracker в HDFS? Какие действия выполняет HDFS?

Job Tracker используется для отправки и отслеживания заданий MapReduce. Он работает на собственном процессе JVM (виртуальная машина Java).

Job Tracker выполняет следующие действия в Hadoop.

Клиент отправляет задания в систему отслеживания вакансий

JobTracker взаимодействует с узлом Name, чтобы определить местоположение данных.

Доступные слоты JobTracker находит узлы TaskTracker

На выбранных узлах TaskTracker он отправляет работу

Когда задача не выполняется, средство отслеживания заданий уведомляет об этом и решает, что делать дальше.

Узлы Task Tracker контролируются Job Tracker

Путь вперед

Это краткая информация о MapReduce. Вы можете строить более глубокие концепции на основе этой базовой информации. Вы можете подписаться на меня в Linkedin и GitHub, чтобы оценить мой вклад, и это также будет мотивировать меня вносить больший вклад.