Как работи MapReduce? - Работа, фази и предимства на MapReduce

Съдържание:

Anonim

Въведение в MapReduce

MapReduce е изчислителен компонент на Hadoop Framework за лесно писане на приложения, които обработват паралелно големи количества данни и се съхраняват в големи клъстери от евтини стокови машини по надежден и несъвместим начин. В тази тема ще научим как работи MapReduce?

MapReduce може да извършва разпределени и паралелни изчисления, използвайки големи набори от данни в голям брой възли. Заданието MapReduce обикновено разделя наборите от входни данни и след това обработва всеки от тях независимо от задачите Map напълно паралелно. След това изходът се сортира и въвежда за намаляване на задачите. И входът, и изходът на заданието се съхраняват във файлови системи. Задачите се планират и следят от рамката.

Как работи MapReduce?

MapReduce архитектурата съдържа два основни компонента като услуги на Daemon, отговорни за изпълнението на задачи за картографиране и редуктор, наблюдение и повторно изпълнение на задачите при отказ. В Hadoop 2 нататък Resource Manager и Node Manager са услугите на демон. Когато клиентът за работа изпрати задача на MapReduce, тези демони влизат в действие. Те са също така отговорни за паралелната обработка и функциите за устойчивост на откази в заданията MapReduce.

В Hadoop 2 нататък управлението на ресурсите и функциите за планиране на работа или мониторинг функционалностите са разделени от YARN (още един преговарящ ресурс) като различни демон. В сравнение с Hadoop 1 с Job Tracker и Task Tracker, Hadoop 2 съдържа глобален мениджър на ресурси (RM) и Masters за приложения (AM) за всяко приложение.

  • Клиентът за работа изпраща заданието на диспечера на ресурси.
  • Планировникът на YARN Resource Manager е отговорен за координацията на разпределението на ресурсите на клъстера между работещите приложения.
  • YARN Node Manager работи на всеки възел и извършва управление на ресурсите на ниво възел, като се координира с диспечера на ресурси. Той стартира и следи изчислителните контейнери на машината в клъстера.
  • Application Master помага на ресурсите от Resource Manager и използва Node Manager за изпълнение и координиране на задачи MapReduce.

  • HDFS обикновено се използва за споделяне на файлове със задачи между други обекти.

Фази на модела MapReduce

Модел MapReduce има три основни и една незадължителна фаза:

1. Картограф

  • Това е първата фаза на програмирането на MapReduce и съдържа кодиращата логика на функцията за картографиране.
  • Условната логика се прилага за 'n' брой блокове от данни, разпределени в различни възли за данни.
  • Функцията Mapper приема двойки ключ-стойност като вход като (k, v), където ключът представлява адреса на изместване на всеки запис и стойността представлява цялото съдържание на записа.
  • Изходът от фазата на Mapper също ще бъде във формат ключ-стойност като (k ', v').

2. Разбъркайте и сортирайте

  • Резултатът от различни картографи (k ', v'), след това преминава във фаза на разбъркване и сортиране.
  • Всички дублиращи се стойности се премахват и различните стойности се групират на базата на подобни ключове.
  • Изходът от фазата на разбъркване и сортиране отново ще бъде двойки ключ-стойност като ключ и масив от стойности (k, v ()).

3. Редуктор

  • Изходът от фазата на разбъркване и сортиране (k, v ()) ще бъде входът на фазата на редуктора.
  • В тази фаза се изпълнява логиката на функцията на редуктора и всички стойности се агрегират спрямо съответните им ключове.
  • Редукторът консолидира изходите на различни картографи и изчислява крайния резултат на заданието.
  • След това крайният изход се записва в един файл в изходната директория на HDFS.

4. Комбинатор

  • Това е незадължителна фаза в модела MapReduce.
  • Фазата на комбиниране се използва за оптимизиране на производителността на заданията MapReduce.
  • В тази фаза различните изходи на картографите са локално намалени на ниво възел.
  • Например, ако различни изходи на картографи (k, v), идващи от един възел, съдържат дубликати, те се комбинират, т.е. локално намалени като единичен (k, v ()) изход.
  • Тази фаза прави работата на разбъркване и сортиране още по-бърза, като по този начин дава възможност за допълнителна производителност в заданията на MapReduce.

Всички тези фази в заданието MapReduce могат да бъдат изобразени по-долу:

Например логиката MapReduce за намиране на броя на думите в масив от думи може да бъде показана по-долу:

плодове_array = (ябълка, портокал, ябълка, гуава, грозде, портокал, ябълка)

  • Фазата на Mapper токенизира входния масив от думи в 'n' брой думи, за да даде резултата като (k, v). Например, помислете за „ябълка“. Изходът на Mapper ще бъде (apple, 1), (apple, 1), (apple, 1).
  • Разбъркване и сортиране приемат изходът на картограф (k, v) и групират всички стойности според клавишите им като (k, v ()). т.е. (ябълка, (1, 1, 1)).
  • Фазата на редуктора приема Shuffle и сортиране на изхода и дава съвкупността от стойности (apple, (1 + 1 + 1)), съответстващи на техните ключове. т.е. (ябълка, 3).

Спекулативно изпълнение на работа на MapReduce

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

Предимства на MapReduce

Тук ползите от MapReduce споменават по-долу

1. Отклонение

  • По време на работа по намаляване на картата, ако машина, носеща няколко блока данни, се провали, архитектурата се справя с неуспеха.
  • Той разглежда копирани копия на блоковете в алтернативни машини за по-нататъшна обработка.

2. Устойчивост

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

3. Бързо

  • Обработката на данни е бърза, тъй като MapReduce използва HDFS като система за съхранение.
  • MapReduce отнема минути за обработка на терабайти от неструктурирани големи обеми от данни.

4. Паралелна обработка

  • Задачите MapReduce обработват паралелно множество парчета от едни и същи набори от данни, като разделят задачите.
  • Това дава предимството на изпълнението на задачата за по-малко време.

5. Наличност

  • Множество реплики на едни и същи данни се изпращат до множество възли в мрежата.
  • По този начин, в случай на неуспех, други копия са лесно достъпни за обработка без загуба.

6. Мащабируемост

  • Hadoop е силно мащабируема платформа.
  • Традиционните RDBMS системи не са мащабируеми според увеличаването на обема на данни.
  • MapReduce ви позволява да стартирате приложения от огромен брой възли, използвайки терабайти и петабайти от данни.

7. Ефективна цена

  • Функцията за мащабиране на Hadoop, заедно с програмирането на MapReduce, ви позволява да съхранявате и обработвате данни по много ефективен и достъпен начин.
  • Спестяването на разходите може да бъде огромно като цифри от стотици за терабайти данни.

Заключение - Как работи MapReduce

Съвременните данни се придвижват повече към неструктурирания тип и огромната, конвенционална опция за обработка на данни като RDBMS е още по-трудна, отнема време и скъпо. Програмирането на MapReduce от Hadoop е много по-ефективно, по-безопасно и по-бързо при обработката на големи набори от данни дори от терабайти или петабайти.

Препоръчителни статии

Това е ръководство за това как работи MapReduce. Тук обсъждаме фазите на модела MapReduce с предимства и как работи. Може да разгледате и следните статии, за да научите повече -

  1. Компоненти на екодосистемата Hadoop
  2. Алгоритми MapReduce
  3. Какво представлява MapReduce в Hadoop?
  4. Въпроси за интервю с MapReduce