Що таке MapReduce в Hadoop? Архітектура - Приклад

Зміст:

Anonim

Що таке MapReduce в Hadoop?

MapReduce - це програмна база та модель програмування, яка використовується для обробки величезних обсягів даних. Програма MapReduce працює у два етапи, а саме: Map і Reduce. Завдання на карті мають справу з розбиттям та зіставленням даних, тоді як Зменшити перемішування завдань та зменшити дані.

Hadoop здатний запускати програми MapReduce, написані різними мовами: Java, Ruby, Python та C ++. Програми Map Reduce у хмарних обчисленнях мають паралельний характер, отже, дуже корисні для проведення широкомасштабного аналізу даних за допомогою декількох машин у кластері.

Вхідними даними для кожної фази є пари ключ-значення . Крім того, кожному програмісту потрібно вказати дві функції: функцію відображення та функцію зменшення .

У цьому підручнику Hadoop MapReduce ви дізнаєтесь-

  • Що таке MapReduce в Hadoop?
  • Детально пояснено архітектуру MapReduce у великих даних
  • Архітектура MapReduce детально пояснена
  • Як MapReduce організовує роботу?

Детально пояснено архітектуру MapReduce у великих даних

Весь процес проходить чотири фази виконання, а саме, розбиття, відображення, перетасовку та зменшення.

Тепер у цьому підручнику MapReduce давайте розберемося на прикладі MapReduce -

Зверніть увагу, що у вас є наступні вхідні дані для вашого MapReduce у програмі великих даних

Welcome to Hadoop ClassHadoop is goodHadoop is bad

Архітектура MapReduce

Остаточним результатом завдання MapReduce є

погано 1
Клас 1
добре 1
Hadoop 3
є 2
до 1
Ласкаво просимо 1

Дані проходять наступні фази MapReduce у великих даних

Вхідні розподіли:

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

Картування

Це найперший етап виконання програми зменшення карти. На цьому етапі дані в кожному розбитті передаються у функцію відображення для отримання вихідних значень. У нашому прикладі робота етапу відображення полягає в тому, щоб підрахувати кількість випадків кожного слова із вхідних розбитків (детальніше про вхідне розділення наведено нижче) та підготувати список у вигляді <слово, частота>

Перетасовка

Ця фаза споживає результати фази картографування. Його завдання полягає у консолідації відповідних записів з результатів фази картографування. У нашому прикладі ті самі слова об’єднуються разом із відповідною частотою.

Зменшення

На цій фазі вихідні значення з фази перемішування агрегуються. Ця фаза поєднує значення з фази перетасовки і повертає одне вихідне значення. Коротше кажучи, цей етап узагальнює повний набір даних.

У нашому прикладі ця фаза агрегує значення з фази перемішування, тобто обчислює загальну кількість випадків кожного слова.

Архітектура MapReduce детально пояснена

  • Для кожного розбиття створюється одне завдання карти, яке потім виконує функцію відображення кожного запису в розбитті.
  • Завжди вигідно мати кілька розбиттів, оскільки час, необхідний для обробки розбиття, невеликий порівняно з часом, необхідним для обробки всього вводу. Коли розщеплення менше, обробку краще завантажувати збалансовано, оскільки ми обробляємо розщеплення паралельно.
  • Однак також не бажано мати занадто малі розміри розколів. Коли розбиття занадто малі, перевантаження управління розбиттями та створенням завдання карт починають домінувати над загальним часом виконання завдання.
  • Для більшості завдань краще зробити розмір розділення, рівний розміру блоку HDFS (який за замовчуванням становить 64 МБ).
  • Виконання завдань карти призводить до запису виводу на локальний диск на відповідному вузлі, а не в HDFS.
  • Причиною вибору локального диска над HDFS є уникнення реплікації, яка має місце у випадку роботи магазину HDFS.
  • Висновок карти - це проміжний результат, який обробляється завданнями зменшення для отримання кінцевого результату.
  • Після завершення завдання вихід карти можна викинути. Отже, зберігання його в HDFS з реплікацією стає надмірним.
  • У разі відмови вузла, перш ніж вихід карти буде витрачений завданням зменшення, Hadoop повторно виконує завдання карти на іншому вузлі та відтворює вихід карти.
  • Завдання "Зменшити" не працює над концепцією локалізації даних. Вихідні дані кожного завдання карти подаються до завдання зменшення. Висновок карти передається на машину, де запущено завдання зменшення.
  • На цій машині вихідні дані об’єднуються, а потім передаються користувацькій функції зменшення.
  • На відміну від виводу карти, зменшення виведення зберігається у HDFS (перша репліка зберігається на локальному вузлі, а інші репліки - на позареєстрових вузлах). Отже, написання зменшуваного виводу

Як MapReduce організовує роботу?

Тепер у цьому посібнику MapReduce ми дізнаємось, як працює MapReduce

Hadoop розподіляє роботу на завдання. Існує два типи завдань:

  1. Завдання на карті (Розбиття та зіставлення)
  2. Скоротити завдання (перетасовка, зменшення)

як зазначено вище.

Повний процес виконання (виконання завдань Map і Reduce, обидва) контролюється двома типами сутностей, які називаються a

  1. Jobtracker : діє як майстер (відповідальний за повне виконання поданої роботи)
  2. Кілька відстежувачів завдань : діє як раб, кожен з них виконує роботу

Для кожного завдання, поданого на виконання в системі, існує один Jobtracker, який знаходиться в Namenode, і існує безліч трекерів, які працюють у Datanode .

Як працює Hadoop MapReduce
  • Завдання ділиться на кілька завдань, які потім запускаються на декількох вузлах даних у кластері.
  • Відповідальність за відстеження завдань - координувати діяльність, плануючи завдання для запуску на різних вузлах даних.
  • Потім виконання індивідуального завдання полягає у догляді за засобом відстеження завдань, який знаходиться на кожному вузлі даних, що виконує частину завдання.
  • Обов'язок відстежувача завдань - надсилати звіт про хід до відстежувача завдань.
  • Крім того, відстежувач завдань періодично надсилає сигнал "серцебиття" на Jobtracker, щоб повідомити його про поточний стан системи.
  • Таким чином, відстежувач вакансій відстежує загальний прогрес кожної роботи. У разі відмови завдання, відстежувач завдань може перенести його на інший трекер завдань.