Какво е MapReduce в Hadoop? Големи данни Archiтекстура

Какво е MapReduce в Hadoop?

MapReduce е софтуерна рамка и програмен модел, използвани за обработка на огромни количества данни. MapReduce Програмата работи в две фази, а именно, Map и Reduce. Задачите за map се занимават с разделяне и mapping данни, докато Reduce задачите се разбъркват и се намаляват данните.

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

Входът за всяка фаза е ключ-стойност двойки. Освен това всеки програмист трябва да посочи две функции: карта функция намлява намаляване на функцията.

MapReduce Archiструктура в Big Data, обяснена с Пример

Целият процес преминава през четири фази на изпълнение, а именно: разделяне, картографиранеping, разбъркване и намаляване.

Сега в този урок за MapReduce, нека разберем с пример за MapReduce–

Помислете, че имате следните входни данни за вашия MapReduce в Програма за големи данни

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 в Big Data се разделя на парчета с фиксиран размер, наречени входни разделяния Разделянето на входа е част от входа, който се консумира от една карта

Картаping

Това е първата фаза в изпълнението на програмата map-reduce. В тази фаза данните от всяко разделяне се предават на mapping функция за генериране на изходни стойности. В нашия пример, задача на mapping Фазата е да се преброи броят на срещанията на всяка дума от входните разделяния (повече подробности за входното разделяне са дадени по-долу) и да се подготви списък във формата на

Разбъркване

Тази фаза консумира изхода на Mapping фаза. Нейната задача е да консолидира съответните записи от Mapping фазов изход. В нашия пример едни и същи думи са групирани заедно със съответната им честота.

Намаляване

В тази фаза изходните стойности от фазата на разбъркване се агрегират. Тази фаза комбинира стойности от фазата на разбъркване и връща една изходна стойност. Накратко, тази фаза обобщава пълния набор от данни.

В нашия пример тази фаза агрегира стойностите от фазата на разбъркване, т.е. изчислява общия брой срещания на всяка дума.

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

  • За всяко разделяне се създава една задача за карта, която след това изпълнява функция за карта за всеки запис в разделянето.
  • Винаги е полезно да имате няколко разделяния, тъй като времето, необходимо за обработка на разделяне, е малко в сравнение с времето, необходимо за обработка на целия вход. Когато разделянията са по-малки, обработката е по-добре да се зарежда балансирано, тъй като ние обработваме разделянията паралелно.
  • Въпреки това също не е желателно да има твърде малки разцепки. Когато разделянията са твърде малки, претоварването от управлението на разделянията и създаването на задача за карта започва да доминира общото време за изпълнение на задачата.
  • За повечето задачи е по-добре да направите размер на разделянето равен на размера на HDFS блок (който е 64 MB по подразбиране).
  • Изпълнението на задачите за карта води до запис на изход на локален диск на съответния възел, а не на HDFS.
  • Причината за избора на локален диск пред HDFS е да се избегне репликация, която се случва в случай на операция на HDFS хранилище.
  • Изходът на картата е междинен изход, който се обработва от редуциращи задачи, за да се получи крайният изход.
  • След като работата приключи, изходната карта може да бъде изхвърлена. Така че съхраняването му в HDFS с репликация става излишно.
  • В случай на повреда на възел, преди изходът на картата да бъде консумиран от задачата за намаляване, Hadoop изпълнява отново задачата на картата на друг възел и създава отново изхода на картата.
  • Задачата Reduce не работи върху концепцията за локализация на данните. Резултатът от всяка задача за карта се подава към задачата за намаляване. Резултатът от картата се прехвърля към машината, където се изпълнява задачата за намаляване.
  • На тази машина изходът се обединява и след това се предава на дефинираната от потребителя функция за намаляване.
  • За разлика от изхода на картата, изходът за намаляване се съхранява в HDFS (първата реплика се съхранява на локалния възел, а другите реплики се съхраняват на възли извън стелажа). И така, писане на намаления изход

Как MapReduce организира работата?

Сега в този урок за MapReduce ще научим как работи MapReduce

Hadoop разделя работата на задачи. Има два вида задачи:

  1. Картографски задачи (Разделяния и картаping)
  2. Намалете задачите (Разбъркване, намаляване)

както е споменато по-горе.

Пълният процес на изпълнение (изпълнение на задачи Map и Reduce, и двете) се контролира от два типа обекти, наречени

  1. РаботаtracКер: Действа като a майстор (отговаря за пълното изпълнение на предоставената работа)
  2. Множество задачи TracKERS: Действа като роби, всеки от тях изпълнява работата

За всяка заявка, подадена за изпълнение в системата, има една РаботаtracКер който се намира на Namenode и има множество задачиtracKERS които се намират на Datanode.

Как работи Hadoop MapReduce
Как работи Hadoop MapReduce
  • Заданието се разделя на множество задачи, които след това се изпълняват на множество възли за данни в клъстер.
  • Това е отговорност на работата tracker да координира дейността, като планира задачи, които да се изпълняват на различни възли с данни.
  • Изпълнението на отделните задачи след това се извършва поотделно. tracker, който се намира на всеки възел с данни, изпълняващ част от задачата.
  • Task tracОтговорността на Кер е да изпрати отчета за напредъка на работното място tracкер.
  • Освен това, задачата tracкер периодично изпраща "сърцебиене" сигнал към Работатаtracкер, за да го уведоми за текущото състояние на системата.
  • Така че работа tracКер пази track от общия напредък на всяка задача. В случай на неуспех на задачата, работата tracКер може да го пренасрочи за друга задача tracкер.

Обобщете тази публикация с: