Какво представлява MapReduce в Hadoop? Архитектура - Пример

Съдържание:

Anonim

Какво представлява MapReduce в Hadoop?

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

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

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

В този урок за начинаещи Hadoop MapReduce ще научите -

  • Какво представлява MapReduce в Hadoop?
  • Архитектурата на MapReduce в големи данни е обяснена подробно
  • Архитектурата на MapReduce е обяснена подробно
  • Как работи MapReduce Organizes?

Архитектурата на MapReduce в големи данни е обяснена подробно

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

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

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

Welcome to Hadoop ClassHadoop is goodHadoop is bad

MapReduce архитектура

Крайният изход на задачата MapReduce е

лошо 1
Клас 1
добре 1
Hadoop 3
е 2
да се 1
Добре дошли 1

Данните преминават през следните фази на MapReduce в големи данни

Входни разделения:

Вход за работа MapReduce в Big Data е разделен на парчета с фиксиран размер, наречени входни разделяния. Входното разделяне е част от входа, който се консумира от една карта

Картографиране

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

Разбъркване

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

Намаляване

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

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

Архитектурата на MapReduce е обяснена подробно

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

Как работи MapReduce Organizes?

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

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

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

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

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

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

За всяко задание, изпратено за изпълнение в системата, има един Jobtracker, който се намира в Namenode и има множество tracktrackers, които се намират в Datanode .

Как работи Hadoop MapReduce
  • Заданието е разделено на множество задачи, които след това се изпълняват в множество възли на данни в клъстер.
  • Отговорността на тракера на задачите е да координира дейността, като планира задачи, които да се изпълняват на различни възли на данни.
  • След това изпълнението на индивидуална задача е да се грижи по тракера на задачи, който се намира във всеки възел за данни, изпълняващ част от заданието.
  • Отговорността на тракера на задачите е да изпрати доклада за напредъка на тракера на задачите.
  • В допълнение, проследяващото задание периодично изпраща сигнал за „биене на сърцето“ до Jobtracker, за да го уведоми за текущото състояние на системата.
  • По този начин инструментът за проследяване на работа следи общия напредък на всяка работа. В случай на неуспех на задачата, програмата за проследяване на задачи може да я пренасрочи на различен инструмент за проследяване на задачи.