hadoop mapreduce tutorial with examples what is mapreduce
В този урок ще разберем какво е MapReduce, неговите предимства и как работи Hadoop Map Reduce с примери:
В предишния урок научихме за Hadoop HDFS и механизмите за четене и запис. Сега нека изследваме друг компонент на Hadoop, т.е. MapReduce.
Нека разгледаме подробно следното:
- Какво е MapReduce?
- Предимствата му
- Какъв е точният подход на MapReduce?
=> Посетете тук за ексклузивната серия уроци за обучение по BigData.
уебсайт, за да гледате аниме онлайн безплатно
Какво ще научите:
Какво е MapReduce?
Нека да продължим и да започнем с Hadoop Components. Както беше обяснено по-рано, има два основни компонента на Hadoop, т.е. Hadoop HDFS и Hadoop Map Reduce.
Hadoop HDFS е система за разпределение на файлове, която се използва за съхраняване на огромно количество данни в множество стелажи.
Тук ще обсъдим процесорната единица на Hadoop, т.е. MapReduce.
Следващият въпрос, който възниква, е „какво е Map Reduce и защо се изисква?“
Hadoop MapReduce е „Обработващ блок“ и използвайки този компонент, можем да обработим големите данни, съхранявани на Hadoop HDFS.
Но какво е точното изискване? Защо се нуждаем от този компонент на Hadoop?
Големите данни, съхранявани на Hadoop HDFS, не се съхраняват традиционно. Данните се разделят на части от данни, съхранявани в съответните DataNodes. Така че цялата информация не се съхранява на едно централизирано място.
Следователно родно клиентско приложение като Java или всяко такова приложение не може да обработва данните в текущия формат и се нуждаем от специална рамка, която може да обработва фрагментираните блокове данни, съхранявани в съответните DataNodes.
Обработката се извършва с помощта на обработката на Hadoop MapReduce.
Карта Намалете накратко
Горната диаграма дава преглед на Map Reduce, неговите функции и приложения.
Нека започнем с приложенията на MapReduce и къде се използва. Например, той се използва за Класификатори, индексиране и търсене , и Създаване на Препоръчващи двигатели на сайтове за електронна търговия (Flipkart, Amazon и др.) Той се използва и като Анализ от няколко компании.
Когато виждаме от гледна точка на характеристиките, това е a Модел на програмиране и може да се използва за Разпределен в голям мащаб Модел като Hadoop HDFS и има възможността за паралелно програмиране, което го прави много полезен.
Когато видим функциите в Map Reduce, се изпълняват две функции, т.е. Map Function и Reduce.
Тази технология е внедрена от големи организации като Google, Yahoo, Facebook и също така е приета от Apache Hadoop като HDFS, PIG, HIVE и за съхранение на данни или изпълнение и обработка на големите данни с помощта на HBase, която е известна също като No-SQL.
Предимства на Map-Reduce
Има две предимства на тази технология.
# 1) Паралелна обработка
Първото предимство е паралелната обработка. Използвайки Map Reduce, ние винаги можем да обработваме данните паралелно.
Според горната диаграма има пет подчинени машини и някои данни се намират на тези машини. Тук данните се обработват паралелно с помощта на Hadoop Map Reduce и по този начин обработката става бърза.
Всъщност това, което се случва тук, е, че цялата част от данните се разделя от Hadoop HDFS на HDFS Block и Map-Reduce обработва тези парчета данни и по този начин обработката става бърза.
# 2) Местоположение на данните
Това е едно многостранно нещо, което се дава от Hadoop MapReduce, т.е.можем да обработим данните там, където са.
Какво означава?
В предишния урок за HDFS разбрахме, че данните, които сме преместили в Hadoop Cluster, се разделят на HDFS блокове и тези блокове се записват в SlaveMachines или DataNodes. Map-Reduce усеща обработката и логиката към съответните подчинени възли или възли на данни, където данните се намират като HDFS блокове.
Обработката се извършва върху по-малък брой данни на множество места паралелно. Това спестява много време, както и мрежова честотна лента, необходима за преместване на големи данни от едно място на друго.
Само не забравяйте, че данните, които обработваме, са големи данни, разделени на парчета и ако започнем да преместваме големите данни директно през разпределените мрежови канали в централизираща машина и да ги обработим, тогава това няма да ни даде предимство, тъй като ще консумираме цялата честотна лента при преместване на данните към централизиран сървър.
Ползи:
Така че, използвайки Hadoop MapReduce, ние не просто правим “Паралелна обработка” , ние също обработваме данните към съответните подчинени възли или възли на данни, където парчетата данни са налице и следователно ние също сме „Спестяване на много мрежова честотна лента“ което е много полезно.
И накрая, SlaveMachines приключват с обработката на данните, съхранявани в SlaveMachines, и те изпращат резултатите обратно на Master Machine, тъй като резултатите не са толкова големи, колкото блоковете, съхранени в SlaveMachines. Следователно няма да използва много честотна лента.
Подчинените машини изпращат резултата обратно на главната машина, тези резултати се събират заедно и крайният резултат се изпраща обратно на клиентската машина, която е подала заданието.
Тук възниква един въпрос - кой решава кои данни да се обработват в кой DataNode?
Клиентът изпраща заданието на Resource Manager и Resource Manager е този, който предоставя указанието за изпълнение на заданието на съответните DataNodes, където данните се намират, той решава въз основа на най-близкия DataNode, който е на разположение, така че много мрежа Честотната лента не се използва.
Традиционна Vs. MapReduce Way
За да обясним това, ще направим аналогия в реалния живот на броя на заявленията за притежателите на полици на застрахователната компания, всеки би бил наясно с политиките на застрахователните компании, тъй като повечето големи застрахователни компании имат клонове в различни градове.
В тези клонове има „n“ брой хора, които са кандидатствали за политики за животозастраховане.
Да вземем сценарий, при който имаме пет клона на застрахователни компании, където хората идват и кандидатстват за политики за застраховка живот. Сега имаме и едно седалище на тази застрахователна компания, което разполага с цялата информация за клоновете, които са на разположение и се намират.
Когато обаче хората дойдат и кандидатстват за застраховка „Живот“ в съответните клонове A, B, C, D, E, заявленията за полици се съхраняват в съответните клонове и тази информация не се споделя със седалището на застрахователната компания.
Традиционен начин:
Нека да видим как хората традиционно кандидатстват за тази политика. За да се реши този проблем традиционно, всички приложения ще бъдат преместени в централата на застрахователната компания и след това ще започне процесът на кандидатстване.
В този случай трябва да преместим всички заявления в централата на застрахователната компания, което е скъпа работа, т.е. трябва да съберем всички заявления от клоновете на застрахователните компании и да ги отведем в централата на застрахователната компания.
Ето как се включват разходите заедно с огромните усилия за извършване на тази дейност.
Друг аспект на това е претовареното седалище на застрахователната компания, тъй като трябва да обработва всички заявления, приложени от хората за полици в съответните клонове.
Тъй като застрахователната компания обработва заявленията, приложени във всички клонове, това ще отнеме много време. В крайна сметка този процес не работи много добре.
MapReduce Way
Нека да видим как Map-Reduce решава този проблем.
MapReduce следва локалността на данните, т.е. няма да пренася всички заявления в централата на застрахователната компания, а паралелно ще извършва обработката на заявленията в съответните клонове.
След като заявленията, приложени към всеки клон, бъдат обработени, те изпращат обратно обработените данни в централата на застрахователната компания.
Сега централата на застрахователната компания просто трябва да обобщи броя на обработените заявления, изпратени от съответните клонове, и да съхранява подробностите в съответната база данни или център за съхранение.
По този начин обработката ще бъде много лесна и бърза и Притежателите на полици получават предимствата за нула време.
Карта Намаляване в детайли
В предишния ни пример имахме вход (приложения), които бяха разпределени между различни клонове и всеки вход беше обработен от съответната функция на картата.
Знаем, че MapReduce има две функции, т.е. функция на картата и функция за намаляване.
Обработващата част, която е извършена на съответните клонове, е извършена от функцията Map. Така че всеки вход (приложение) във всеки клон е обработен с помощта на функцията Map, след това обработените подробности са изпратени до централата на застрахователната компания и частта за обобщаване се извършва от функцията за намаляване.
Обобщените обработени подробности за приложението са дадени като изход.
Това се случи в предишния ни пример. Целият процес беше разделен на задача за карта и задача за намаляване.
Задачата на картата получава вход и изходът на задачата на картата се дава на задачата за намаляване като вход и тази задача за намаляване дава изхода накрая на клиента.
За да го разберем по-добре, нека преминем през анатомията на MapReduce.
какво е тестване на функционалност с пример
Задача MapReduce работи върху двойка ключ-стойност, така че когато говорим за карта, картата приема входа като ключ-стойност и дава резултата като списък с ключ-стойност. Този списък с ключ-стойност преминава през фаза на разбъркване и въвеждането на ключ и списък със стойности отиват при редуктора.
И накрая, Редукторът ни дава списък с двойките ключ-стойност.
Пример MapReduce - процес на преброяване на думи
Да вземем друг пример, т.е. Този пример е същият като уводния пример за програмиране на Java, т.е. 'Hello World'.
Според диаграмата имахме вход и този вход се разделя или се разделя на различни входове. Така че този процес се нарича разделяне на входа и целият вход се разделя на разделяния на данни въз основа на новия ред знак.
Първият ред е първият вход, т.е. Bigdata Hadoop MapReduce , вторият ред е вторият вход, т.е. MapReduce Hive Bigdata по същия начин за третия вход е Hive Hadoop Hive MapReduce .
Нека да преминем към следващата фаза, т.е.фаза на картографиране. Сега във фазата на картографиране създаваме списък с двойки ключ-стойност. Така че входът е ключ и стойност, тук ключът не е нищо друго освен изместването на номера на реда. Номерът на реда е Ключът, а целият ред е Стойността.
И така, за ред 1 отместването е ключ, а стойността е Bigdata Hadoop MapReduce . В реалния живот номерът на реда или изместването е шестнадесетично число, но за да го улесним, ще го разглеждаме само като номер 1 или 2.
Така че ред 1 ще бъде ключът, а целият ред ще бъде стойността. Когато преминава през функцията за картографиране, това, което ще направи, е да създаде списък с двойки ключ-стойност. Например, Голяма информация , така че функцията ще направи, тя ще прочете всяка дума от реда и ще маркира една (1) след запетая.
Той ще маркира един (1) като Стойност; като Bigdata, 1 Hadoop, 1 и MapReduce, 1 . Тук въпросът е защо поставяме по една (1) след всяка дума?
Това е защото Голяма информация е един брой, така че Bigdata, 1 . По същия начин, Hadoop, 1 и MapReduce, 1 самите те имат един брой, затова маркираме един (1) като Стойност. По същия начин за втория ред или да кажем ред 2 имаме, MapReduce Hive Bigdata .
Така по същия начин функцията за картографиране отново създава списъка с двойки ключ-стойност за него и по този начин според броя списъкът двойки ключ-стойност ще бъде MapReduce, 1 кошер, 1 и Bigdata, 1 .
Ще получим същото в резултат на функцията за картографиране за ред 3, т.е. Кошера, 2 Hadoop, 1 и MapReduce, 1 .
Нека да преминем към фазата на разбъркване, на тази фаза за всеки ключ има изготвен списък. Фазата на разбъркване ще намери външния вид на Key Голяма информация и ще добави Стойностите в списъка. Нека видим какво се случва тук.
Както виждаме две входящи стрелки, първата стрелка идва от списък 1, а друга стрелка идва от списък 2, така че резултатът ще бъде Bigdata, (1,1) .
По същия начин, когато видим думата Hadoop , отново за Hadoop ще бъде изготвен друг списък за Стойности. Както виждаме две входящи стрелки сочат към разбъркване, което означава думата Hadoop ще бъдат взети съответно от списък 2 и списък 3, т.е.крайният резултат след разбъркване ще бъде Hadoop, (1, 1) .
По същия начин ще получим и останалите думи като Кошера, (1, 1, 1) и MapReduce, (1, 1, 1) заедно със списъка им със стойности или кажете списъка с броя според наличността на думи в съответните списъци.
Сега стигнете до Фазата на намаляване, в тази фаза започваме обобщаването на Стойностите, които са присъствали в списъка спрямо всеки Ключ. Така че за Голяма информация, в списъка имаше две стойности, т.е. (единадесет) по този начин подаването на тези стойности ще бъде направено така Bigdata, 2 .
По същия начин, за Hadoop Стойността ще бъде сума т.е. (единадесет) подаването ще бъде Hadoop, 2 .
По същия начин за Кошера и MapReduce, подаването за функция за намаляване ще бъде Кошера, 3 и MapReduce, 3 съответно.
Най-накрая крайният резултат ще бъде изпратен обратно на клиента, както е показано в диаграмата по-долу на „Общият процес на броене на MapReduce”
Цялостният процес на MapReduce Word Count
Ето как работи целият процес на преброяване на думи, когато използвате MapReduce Way.
Заключение
В този урок научихме следното:
- Hadoop Map Reduce е „Обработващ блок“ на Hadoop.
- За да обработим големите данни, съхранявани от Hadoop HDFS, използваме Hadoop Map Reduce.
- Използва се при търсене и индексиране, класификация, препоръки и анализ.
- Той има функции като модел за програмиране, паралелно програмиране и широкомащабен разпределен модел.
- Проектиране на модел на MapReduce са: Обобщение, класификация на най-добрите записи, сортиране и анализи като присъединяване и избор.
- Той има само две функции т.е. Mapper функция и функция редуктор.
- Паралелната обработка и локалността на данните са добрите предимства на Hadoop MapReduce.
- Процесът на MapReduce е разделен на шест фази, т. Е. ВХОД, РАЗДЕЛЯНЕ, КАРТИРАНЕ, РАЗМЯНАВАНЕ, НАМАЛЯВАНЕ и КРАЙЕН РЕЗУЛТАТ
Това е всичко за този урок, в предстоящите ни уроци ще разгледаме:
- Как MapReduce работи с преждата и нейните компоненти?
- Работен поток на приложението на ПРЕЖДА.
- Какво е Spark и каква е разликата между Hadoop и Spark?
=> Проверете ВСИЧКИ уроци за BigData тук.
Препоръчително четене
- Какво е Hadoop? Урок за Apache Hadoop за начинаещи
- Урок за Python DateTime с примери
- Data Mart Урок - Видове, примери и изпълнение на Data Mart
- Размерен модел на данни в хранилището на данни - Урок с примери
- Урок за дължина на масив Java с примери за кодове
- Урок за големи данни за начинаещи | Какво представляват големите данни?
- Урок за скриптове на Unix Shell с примери
- Намиране на елемент от селен чрез урок с текст с примери