hadoop mapreduce tutorial with examples what is mapreduce
V tomto kurzu pochopíme, co je MapReduce, jeho výhody a jak funguje Hadoop Map Reduce s příklady:
V předchozím kurzu jsme se dozvěděli o Hadoop HDFS a mechanizmech čtení a psaní. Nyní prozkoumáme další komponentu Hadoop, tj. MapReduce.
Podívejme se podrobně na následující:
- Co je MapReduce?
- Jeho výhody
- Jaký je přesný přístup MapReduce?
=> Navštivte zde exkluzivní výukové série školení BigData.
Co se naučíte:
Co je MapReduce?
Pojďme dál a začneme s Hadoop Components. Jak již bylo vysvětleno dříve, existují dvě hlavní součásti Hadoop, tj. Hadoop HDFS a Hadoop Map Reduce.
Hadoop HDFS je systém distribuce souborů, který se používá k ukládání velkého množství dat do více stojanů.
Zde budeme diskutovat o procesorové jednotce Hadoop, tj. MapReduce.
Další otázka, která vyvstává, je „co je Map Reduce a proč je vyžadována?“
Hadoop MapReduce je „Zpracovatelská jednotka“ a pomocí této komponenty můžeme zpracovat Big Data uložená na Hadoop HDFS.
Jaký je ale přesný požadavek? Proč potřebujeme tuto součást Hadoop?
Big Data uložená na Hadoop HDFS se neukládají tradičně. Data se rozdělí na bloky dat uložených v příslušných DataNodes. Celá data tedy nejsou uložena na jednom centralizovaném místě.
Proto nativní klientská aplikace, jako je Java nebo jakákoli taková aplikace, nemůže zpracovávat data v aktuálním formátu a potřebujeme speciální rámec, který dokáže zpracovat fragmentované datové bloky uložené v příslušných DataNodes.
Zpracování se provádí pomocí zpracování Hadoop MapReduce.
proč moje výchozí brána pokračuje v režimu offline
Mapa Zmenšit v kostce
Výše uvedený diagram poskytuje přehled Map Reduce, jeho funkcí a použití.
Začněme s aplikacemi MapReduce a kde se používá. Například, používá se pro Klasifikátory, indexování a vyhledávání a vytvoření Doporučení Motory na stránkách elektronického obchodování (Flipkart, Amazon atd.) Používá se také jako Analytics několika společnostmi.
Když vidíme z hlediska funkcí, je to Programovací model a lze je použít pro Distribuováno ve velkém měřítku Modelka jako Hadoop HDFS a má schopnost paralelního programování, díky čemuž je velmi užitečný.
Když vidíme funkce v Map Reduce, budou provedeny dvě funkce, tj. Mapová funkce a Redukční funkce.
Tato technologie byla implementována významnými organizacemi, jako je Google, Yahoo, Facebook, a byla také přijata společností Apache Hadoop jako HDFS, PIG, HIVE a pro ukládání dat nebo provádění a zpracování velkých dat pomocí HBase, která je také známá jako No-SQL.
Výhody zmenšení mapy
Tato technologie má dvě výhody.
# 1) Paralelní zpracování
Úplně první výhodou je paralelní zpracování. Pomocí Map Reduce můžeme data vždy zpracovat paralelně.
Podle výše uvedeného diagramu existuje pět Slave Machines a některá data jsou uložena na těchto Machines. Zde se data zpracovávají paralelně pomocí Hadoop Map Reduce a zpracování se tak rychle zrychlí.
Ve skutečnosti se zde děje to, že se celá část dat rozdělí pomocí Hadoop HDFS na HDFS Block a Map-Reduce tyto kousky dat zpracuje a tím se zpracování zrychlí.
# 2) Lokalita dat
Jedná se o jednu všestrannou věc, kterou poskytuje Hadoop MapReduce, tj. Můžeme zpracovávat data tam, kde jsou.
Co to znamená?
V předchozím kurzu HDFS jsme pochopili, že data, která jsme přesunuli do Hadoop Clusteru, se rozdělí na bloky HDFS a tyto bloky se uloží do SlaveMachines nebo DataNodes. Map-Reduce snímá zpracování a logiku do příslušných podřízených uzlů nebo datových uzlů, kde jsou data uložena jako bloky HDFS.
Zpracování se provádí přes menší část dat na více místech paralelně. To šetří spoustu času i šířku pásma sítě, která je nutná pro přesun velkých dat z jednoho místa na druhé.
Jen si pamatujte, že data, která zpracováváme, jsou Big Data rozdělená na kousky, a pokud začneme přesouvat Big Data přímo přes přidělené síťové kanály do centralizovaného stroje a zpracovávat je, pak nám to nebude dávat žádnou výhodu, protože budeme spotřebovávat celou šířku pásma při přesunu dat na centralizovaný server.
Výhody:
Takže pomocí Hadoop MapReduce nejen děláme „Parallel Processing“ , zpracováváme také data do příslušných podřízených uzlů nebo datových uzlů, kde jsou k dispozici kusy dat, a proto jsme také 'Úspora velké šířky pásma sítě' což je velmi přínosné.
Nakonec jsou SlaveMachines prováděny se zpracováním dat uložených v SlaveMachines a odesílají zpět výsledky do hlavního stroje, protože výsledky nejsou tak velké jako bloky, které byly uloženy v SlaveMachines. Proto nebude využívat velkou šířku pásma.
Podřízené stroje odesílají výsledek zpět do hlavního počítače, tyto výsledky se agregují dohromady a konečný výsledek se odesílá zpět do klientského počítače, který zadal úlohu.
Zde vyvstává jedna otázka - kdo rozhoduje, která data by měla být na kterém DataNode zpracována?
Klient odešle úlohu do Správce zdrojů a Správce zdrojů je ten, kdo stanoví směr k provedení úlohy na příslušných DataNodes, kde jsou data uložena, rozhodne na základě nejbližšího DataNode, který je k dispozici, takže spousta Network Šířka pásma se nevyužívá.
Tradiční vs. MapReduce Way
Abychom to vysvětlili, vezmeme si skutečnou analogii počtu žádostí o pojistnou smlouvu pojišťovny, každý by si byl vědom zásad pojišťovací společnosti, protože většina velkých pojišťoven má své pobočky v různých městech.
V těchto pobočkách je „n“ počtů lidí, kteří se přihlásili do politiky životního pojištění.
Podívejme se na scénář, kdy máme pět poboček pojišťovacích společností, kam lidé přicházejí a žádají o zásady životního pojištění. Nyní máme také jedno ústředí této pojišťovny, které má všechny informace o pobočkách, které jsou k dispozici a nacházejí se.
Když však lidé přijdou a požádají o pojistné smlouvy na životní pojištění na příslušných pobočkách A, B, C, D, E, žádosti o pojistné smlouvy jsou uchovávány na příslušných pobočkách samy a tyto informace nejsou sdíleny s ústředím pojišťovny.
Tradiční způsob:
Podívejme se, jak se lidé tradičně ucházejí o tuto politiku. Abychom tento problém vyřešili tradičně, všechny žádosti budou přesunuty do ústředí pojišťovny a poté bude zahájen proces podávání žádostí.
V tomto případě musíme přesunout všechny aplikace do ústředí pojišťovny, což je nákladná záležitost, tj. Musíme shromáždit všechny žádosti z poboček pojišťovny a odnést ji do ústředí pojišťovny.
Tímto způsobem jsou spojeny náklady spolu s obrovským úsilím při provádění této činnosti.
Dalším aspektem je přetížené ústředí pojišťovny, protože musí zpracovávat všechny žádosti, které lidé aplikovali na pojistky v příslušných pobočkách.
Jelikož pojišťovna zpracovává žádosti, které byly aplikovány ve všech pobočkách, bude to trvat dlouho. Nakonec tento proces nefunguje moc dobře.
MapReduce Way
Podívejme se, jak tento problém řeší Map-Reduce.
MapReduce sleduje Data Locality, tj. Nepřenáší všechny aplikace do ústředí pojišťovny, místo toho bude paralelně zpracovávat žádosti v příslušných pobočkách.
Jakmile budou žádosti, které byly použity na každou pobočku, zpracovány, odešlou zpracované podrobnosti zpět do ústředí pojišťovny.
Nyní musí ústředí pojišťovací společnosti pouze agregovat počet zpracovaných žádostí, které byly odeslány z příslušných poboček, a uchovat podrobnosti v příslušné databázi nebo úložišti.
Tímto způsobem bude zpracování velmi snadné a rychlé a pojistníci získají výhody okamžitě.
Podrobně zmenšit mapu
V našem předchozím příkladu jsme měli vstup (aplikace), které byly distribuovány mezi různé větve a každý vstup byl zpracován příslušnou mapovou funkcí.
Víme, že MapReduce má dvě funkce, tj. Mapovou funkci a Redukční funkci.
Zpracovatelská část, která byla provedena na příslušných větvích, byla provedena funkcí Map. Takže každý vstup (aplikace) v každé větvi byl zpracován pomocí funkce Map, poté byly zpracované podrobnosti odeslány do centrály pojišťovny a agregační část je provedena funkcí Reduce.
Souhrn zpracovaných podrobností aplikace je uveden jako Výstup.
To se stalo v našem předchozím příkladu. Celý proces byl rozdělen na úkol mapy a snížení úlohy.
Mapová úloha získá vstup a výstup mapové úlohy se dá redukční úloze jako vstup a tato zmenšovací úloha poskytne výstup konečně klientovi.
Abychom to lépe pochopili, projdeme si anatomii MapReduce.
Úloha MapReduce funguje na páru klíč – hodnota, takže když mluvíme o mapě, mapa bere vstup jako klíč – hodnota a dává výstup jako seznam klíč – hodnota. Tento seznam párů klíč – hodnota prochází fází zamíchání a vstup klíče a seznam hodnot přešel do reduktoru.
Nakonec nám Reducer poskytne seznam párů klíč – hodnota.
Příklad MapReduce - proces počítání slov
Pojďme si vzít další příklad, tj. Počet slov zpracovat MapReduce Way. Tento příklad je stejný jako úvodní příklad programování v jazyce Java, tj. „Hello World“.
Podle diagramu jsme měli vstup a tento vstup se rozdělí nebo se rozdělí na různé vstupy. Tento proces se tedy nazývá Split Splitting a celý vstup se dělí na rozdělení dat na základě nového znaku řádku.
Úplně první řádek je první vstup, tj. Bigdata Hadoop MapReduce , druhý řádek je druhý vstup, tj. MapReduce Hive Bigdata podobně je to u třetího vstupu Úl Hadoop Mapa úlu Snížit .
Pojďme k další fázi, tj. Fázi mapování. Nyní ve fázi mapování vytvoříme seznam párů klíč – hodnota. Takže vstup je klíč a hodnota, zde klíč není nic jiného než offset čísla řádku. Číslo řádku je klíč a celý řádek je hodnota.
Takže pro řádek 1 je offset klíč a hodnota je Bigdata Hadoop MapReduce . V reálném životě je číslo řádku nebo offset hexadecimální číslo, ale abychom to usnadnili, budeme to považovat pouze za číslo 1 nebo 2.
Řádek 1 bude klíčem a celý řádek bude hodnotou. Při procházení funkcí mapování to, co mapování udělá, je vytvoření seznamu párů klíč – hodnota. Například, Bigdata Funkce tedy bude číst každé slovo na řádku a za čárkou označí jedno (1).
Označí jednu (1) jako Hodnotu; jako Bigdata, 1 Hadoop, 1 a MapReduce, 1 . Tady je otázka, proč za každé slovo dáváme jeden (1)?
To je Protože Bigdata je jeden počítat tak Bigdata, 1 . Podobně, Hadoop, 1 a MapReduce, 1 sami mají jeden počet, proto jeden (1) označíme jako hodnotu. Stejným způsobem pro druhý řádek nebo řekněme řádek 2 máme, MapReduce Hive Bigdata .
Stejným způsobem tedy funkce mapování pro ni znovu vytvoří seznam párů klíč-hodnota, a tedy podle počtu bude seznam párů klíč-hodnota MapReduce, 1 Úl, 1 a Bigdata, 1 .
Získáme totéž jako výsledek funkce mapování pro řádek 3, tj. Úl, 2 Hadoop, 1 a MapReduce, 1 .
Pojďme na fázi míchání, v této fázi je pro každý klíč připraven seznam. Fáze míchání najde vzhled Key Bigdata a přidá hodnoty do seznamu. Pojďme se tedy podívat, co se tady děje.
Jak vidíme dvě příchozí šipky, první šipka pochází ze seznamu 1 a další šipka pochází ze seznamu 2, takže výsledek bude Bigdata, (1,1) .
Podobně, když vidíme slovo Hadoop , opět pro Hadoop pro hodnoty bude připraven další seznam. Jak vidíme, dvě příchozí šipky ukazují na Shuffling, což znamená slovo Hadoop bude vyzvednut ze seznamu 2 a 3, tj. konečný výsledek po Shufflingu bude Hadoop, (1, 1) .
Stejným způsobem dostaneme zbytek slov jako Úl, (1, 1, 1) a MapReduce, (1, 1, 1) spolu s jejich seznamem hodnot nebo řekněte seznam Count podle dostupnosti slov v příslušných seznamech.
Nyní přejděte do redukční fáze, v této fázi zahájíme agregaci hodnot, které byly v seznamu přítomny, proti každému klíči. Tak pro Bigdata, v seznamu byly přítomny dvě hodnoty, tj. (jedenáct) tedy bude provedeno zadání těchto hodnot Bigdata, 2 .
Podobně pro Hadoop Hodnota bude součet, tj. (jedenáct) podání bude Hadoop, 2 .
Stejným způsobem pro Úl a MapReduce, podání pro Redukční funkci bude Úl, 3 a MapReduce, 3 resp.
Konečně bude konečný výsledek odeslán zpět klientovi, jak je znázorněno v níže uvedeném diagramu „Celkový proces počítání slov MapReduce“
Celkový proces počítání slov MapReduce
Takto funguje celý proces počítání slov, když používáte MapReduce Way.
Závěr
V tomto kurzu jsme se naučili následující:
- Hadoop Map Reduce je „Zpracovatelská jednotka“ Hadoop.
- Ke zpracování velkých dat uložených pomocí Hadoop HDFS používáme Hadoop Map Reduce.
- Používá se při vyhledávání a indexování, klasifikaci, doporučení a analýze.
- Má funkce jako programovací model, paralelní programování a distribuovaný model ve velkém měřítku.
- Návrhový vzor MapReduce jsou: Shrnutí, klasifikace nejlepších záznamů, třídění a analytika jako spojení a výběr.
- Má pouze dvě funkce tj. funkce mapovače a redukce.
- Paralelní zpracování a lokalizace dat jsou dobrými výhodami Hadoop MapReduce.
- Proces MapReduce je rozdělen do šesti fází, tj. INPUT, SPLITTING, MAPPING, SHUFFLING, REDUCING a FINAL RESULT.
To je vše pro tento tutoriál, v našich připravovaných tutoriálech se budeme zabývat:
- Jak funguje MapReduce s YARN a jeho komponentami?
- Pracovní postup aplikace YARN.
- Co je Spark a jaký je rozdíl mezi Hadoop a Spark?
=> Zkontrolujte VŠECHNY výukové programy BigData zde.
Doporučené čtení
- Co je Hadoop? Výukový program Apache Hadoop pro začátečníky
- Výukový program Python DateTime s příklady
- Výukový program Data Mart - Typy, příklady a implementace Data Mart
- Dimenzionální datový model v datovém skladu - výuka s příklady
- Výukový program Java Array Length s příklady kódu
- Výukový program pro velká data pro začátečníky Co jsou to velká data?
- Výukový program pro skriptování prostředí Unix s příklady
- Výukový program pro vyhledání prvku selen pomocí textu s příklady