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

Какво е MapReduce в Hadoop?

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

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

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

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

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

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

Mapping

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

Разбъркване

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

Намаляване

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

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

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

  • За всяко разделяне се създава една задача за карта, която след това изпълнява функция за карта за всеки запис в разделянето.
  • Винаги е полезно да имате няколко разделяния, тъй като времето, необходимо за обработка на разделяне, е малко в сравнение с времето, необходимо за обработка на целия вход. Когато разделянията са по-малки, обработката е по-добре да се зарежда балансирано, тъй като ние обработваме разделянията паралелно.
  • Въпреки това също не е желателно да има твърде малки разцепки. Когато разделянията са твърде малки, претоварването от управлението на разделянията и създаването на задача за карта започва да доминира общото време за изпълнение на задачата.
  • За повечето задачи е по-добре да направите размер на разделянето равен на размера на HDFS блок (който е 64 MB по подразбиране).
  • Изпълнението на задачите за карта води до запис на изход на локален диск на съответния възел, а не на 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, за да го уведоми за текущото състояние на системата.
  • По този начин инструментът за проследяване на задачи следи цялостния напредък на всяка работа. В случай на неуспех на задачата инструментът за проследяване на задачи може да я пренасрочи на друг инструмент за проследяване на задачи.