Какво представлява 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 е
лошо | 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 разделя работата на задачи. Има два вида задачи:
- Задачи на картата (разделяне и картографиране)
- Намаляване на задачите (разбъркване, намаляване)
както е споменато по-горе.
Пълният процес на изпълнение (изпълнение на задачи Map и Reduce, и двете) се контролира от два вида обекти, наречени a
- Jobtracker : Действа като майстор (отговорен за пълното изпълнение на изпратената работа)
- Множество проследяващи задачи : Действа като роби, всеки от тях изпълнява задачата
За всяко задание, изпратено за изпълнение в системата, има един Jobtracker, който се намира в Namenode и има множество tracktrackers, които се намират в Datanode .

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