Що таке MapReduce у Hadoop? Великі дані Archiтектура

Що таке MapReduce у Hadoop?

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

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

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

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

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

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

Вважайте, що у вас є такі вхідні дані для вашого MapReduce in Програма великих даних

Welcome to Hadoop Class
Hadoop is good
Hadoop is bad
MapReduce Archiтектура
MapReduce Archiтектура

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

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

Дані проходять наступні етапи MapReduce у Big Data

Вхідні розділення:

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

Карт

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

Перемішування

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

Зменшення

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

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

MapReduce Archiдетально пояснена структура

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

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

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

Hadoop ділить роботу на завдання. Є два види завдань:

  1. Завдання на карті (Поділи та відображення)
  2. Зменшіть завдання (Перемішування, зменшення)

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

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

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

На кожне завдання, подане на виконання в системі, є одне Jobtracker що проживає на Namenode і є кілька трекерів завдань які проживають на Datanode.

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