hadoop mapreduce tutorial with examples what is mapreduce
V tomto výučbe pochopíme, čo je MapReduce, jeho výhody a ako funguje Hadoop Map Reduce s príkladmi:
V predchádzajúcom tutoriáli sme sa dozvedeli o Hadoop HDFS a mechanizmoch čítania a zápisu. Teraz poďme preskúmať ďalší komponent Hadoop, t. J. MapReduce.
Pozrime sa podrobne na toto:
- Čo je MapReduce?
- Jeho výhody
- Aký je presný prístup MapReduce?
=> Navštívte exkluzívnu sériu výučbových školení BigData tu.
Čo sa dozviete:
Čo je MapReduce?
Poďme ďalej a začnime s komponentmi Hadoop. Ako už bolo vysvetlené, existujú dva hlavné komponenty Hadoop, tj. Hadoop HDFS a Hadoop Map Reduce.
Hadoop HDFS je systém distribúcie súborov, ktorý sa používa na ukladanie veľkého množstva údajov do viacerých stojanov.
Tu budeme diskutovať o procesorovej jednotke Hadoop, tj. MapReduce.
Vynára sa ďalšia otázka: „Čo je to Map Reduce a prečo je to potrebné?“
ako počítačový program pre začiatočníkov
Je Hadoop MapReduce „Spracovateľská jednotka“ a pomocou tohto komponentu môžeme spracovať Big Data uložené na Hadoop HDFS.
Aká je však presná požiadavka? Prečo potrebujeme túto zložku Hadoopu?
Veľké dáta uložené na Hadoop HDFS sa neukladajú tradične. Dáta sa rozdelia na kúsky údajov uložených v príslušných DataNodes. Takže všetky údaje nie sú uložené na jednom centralizovanom mieste.
Preto natívna klientská aplikácia, ako je Java, alebo iná takáto aplikácia nemôže spracovávať údaje v aktuálnom formáte a potrebujeme špeciálny rámec, ktorý dokáže spracovať fragmentované dátové bloky uložené v príslušných DataNodes.
Spracovanie sa vykonáva pomocou spracovania Hadoop MapReduce.
Mapa Zmenšiť v skratke
Vyššie uvedený diagram poskytuje prehľad aplikácie Map Reduce, jej funkcií a použitia.
Začnime s aplikáciami MapReduce a kde sa používa. Napríklad, používa sa na Klasifikátory, indexovanie a vyhľadávanie a vytvorenie Motory odporúčaní na stránkach elektronického obchodu (Flipkart, Amazon atď.) Používa sa tiež ako Analytika niekoľkými spoločnosťami.
Keď vidíme z hľadiska funkcií, je to a Programovací model a môžu byť použité na Distribuované vo veľkom meradle Model ako Hadoop HDFS a má schopnosť paralelného programovania, vďaka čomu je veľmi užitočný.
Keď vidíme funkcie v Map Reduce, vykonajú sa dve funkcie, tj. Mapová funkcia a Redukčná funkcia.
Táto technológia bola implementovaná významnými organizáciami ako Google, Yahoo, Facebook a tiež prijatá Apache Hadoop ako HDFS, PIG, HIVE a na ukladanie dát alebo vykonávanie a spracovanie veľkých dát pomocou HBase, ktorá je tiež známa ako No-SQL.
Výhody zmenšenia mapy
Táto technológia má dve výhody.
# 1) Paralelné spracovanie
Úplne prvou výhodou je paralelné spracovanie. Pomocou funkcie Map Reduce môžeme údaje kedykoľvek spracovať paralelne.
Podľa vyššie uvedeného diagramu existuje päť podriadených strojov a na týchto strojoch sa nachádzajú určité údaje. Tu sa dáta paralelne spracúvajú pomocou programu Hadoop Map Reduce, a tak sa spracovanie stáva rýchlym.
V skutočnosti sa tu stane to, že sa celý balík dát rozdelí pomocou Hadoop HDFS na HDFS Block a Map-Reduce tieto kúsky údajov spracuje, a tak sa spracovanie zrýchli.
# 2) Lokalita údajov
Toto je jedna všestranná vec, ktorú dáva Hadoop MapReduce, t. J. Môžeme dáta spracovať tam, kde sú.
Čo to znamená?
V predchádzajúcom návode na HDFS sme pochopili, že dáta, ktoré sme presunuli do klastra Hadoop, sa rozdelia na bloky HDFS a tieto bloky sa ukladajú do SlaveMachines alebo DataNodes. Funkcia Map-Reduce sníma spracovanie a logiku k príslušným podriadeným uzlom alebo DataNodes, kde sa údaje nachádzajú ako bloky HDFS.
Spracovanie sa vykonáva na menšom bloku dát na viacerých miestach paralelne. Ušetrí to veľa času, ako aj šírku pásma siete, ktorá je potrebná na presun veľkých dát z jedného miesta na druhé.
Pamätajte, že dáta, ktoré spracovávame, sú Big Data rozdelené na kúsky, a ak začneme Big Data presúvať priamo cez pridelené sieťové kanály do centralizovaného stroja a spracovávať ich, nebude nám to dávať žiadnu výhodu, pretože ich budeme konzumovať celú šírku pásma pri presune údajov na centralizovaný server.
Výhody:
Takže pomocou Hadoop MapReduce nerobíme iba to „Parallel Processing“ , taktiež spracúvame údaje na príslušné podriadené uzly alebo dátové uzly, kde sú kúsky údajov prítomné, a teda sme tiež „Úspora veľkej šírky pásma siete“ čo je veľmi výhodné.
Nakoniec sú SlaveMachines vykonané so spracovaním údajov uložených v SlaveMachines a výsledky posielajú späť do Master Machine, pretože výsledky nie sú také veľké ako bloky, ktoré boli uložené v SlaveMachines. Preto nebude využívať veľkú šírku pásma.
Podriadené stroje odosielajú výsledok späť do hlavného stroja, tieto výsledky sa agregujú a konečný výsledok sa posiela späť do klientskeho stroja, ktorý zadal úlohu.
Tu vyvstáva jedna otázka - kto rozhoduje, ktoré dáta by sa mali v ktorom DataNode spracovať?
Klient zadá úlohu Správcovi zdrojov a Správca zdrojov je ten, kto poskytne smer na vykonanie úlohy na príslušných DataNodes, kde sa údaje nachádzajú, rozhodne na základe najbližšieho DataNode, ktorý je k dispozícii, takže veľa sietí Šírka pásma sa nevyužíva.
Tradičné vs. MapReduce Way
Aby sme to vysvetlili, vezmeme si skutočnú analógiu s počtom žiadateľov o poistku v poisťovacej spoločnosti, všetci by si boli vedomí zásad poisťovacej spoločnosti, pretože väčšina veľkých poisťovacích spoločností má pobočky v rôznych mestách.
V týchto pobočkách je „n“ počtov ľudí, ktorí požiadali o politiku životného poistenia.
Zoberme si scenár, keď máme päť pobočiek poisťovacích spoločností, kam ľudia prichádzajú a žiadajú o zásady životného poistenia. Teraz máme tiež jedno ústredie tejto poisťovacej spoločnosti, ktoré má všetky informácie o pobočkách, ktoré sú k dispozícii a nachádzajú sa.
Keď však ľudia prídu a požiadajú o zmluvu o životnom poistení na príslušných pobočkách A, B, C, D, E, žiadosti o poistné zmluvy sa uchovávajú na príslušných pobočkách samotných a tieto informácie sa neposkytujú ústrediu poisťovne.
Tradičný spôsob:
Pozrime sa, ako sa ľudia tradične hlásia k tejto politike. Aby sa tento problém tradične vyriešil, všetky žiadosti sa presunú do ústredia poisťovne a potom sa začne proces podávania žiadosti.
V takom prípade musíme presunúť všetky aplikácie do ústredia poisťovne, čo je nákladná záležitosť, to znamená, že musíme zhromaždiť všetky žiadosti z pobočiek poisťovne a odniesť ich do ústredia poisťovne.
Takto sú spojené náklady spolu s vynaložením veľkého úsilia pri vykonávaní tejto činnosti.
Ďalším aspektom je preťažené ústredie poisťovacej spoločnosti, pretože musí spracovávať všetky žiadosti, ktoré ľudia použili pre poistné zmluvy v príslušných pobočkách.
Keďže poisťovňa spracováva žiadosti, ktoré boli aplikované vo všetkých pobočkách, bude to trvať dlho. Nakoniec tento proces nefunguje veľmi dobre.
MapReduce Way
Pozrime sa, ako tento problém vyrieši Map-Reduce.
MapReduce sleduje Data Locality, t. J. Neprináša všetky aplikácie do ústredia poisťovne, namiesto toho bude paralelne spracúvať žiadosti v príslušných pobočkách.
Po spracovaní žiadostí aplikovaných na každú pobočku pošlú späť spracované podrobnosti späť do ústredia poisťovne.
Teraz musí ústredie poisťovacej spoločnosti iba zhromaždiť počet spracovaných žiadostí, ktoré boli odoslané z príslušných pobočiek, a ponechať podrobnosti v príslušnej databáze alebo úložisku.
Týmto spôsobom bude spracovanie veľmi jednoduché a rýchle a poistenci získajú výhody okamžite.
Mapa sa detailne zmenší
V našom predchádzajúcom príklade sme mali vstup (aplikácie), ktoré boli distribuované medzi rôzne vetvy a každý vstup bol spracovaný príslušnou mapovou funkciou.
Vieme, že MapReduce má dve funkcie, tj. Mapovú funkciu a Redukčnú funkciu.
Spracovateľská časť, ktorá bola vykonaná na príslušných vetvách, bola vykonaná pomocou funkcie Map. Takže každý vstup (aplikácia) v každej pobočke bol spracovaný pomocou funkcie Map, potom boli spracované podrobnosti odoslané do ústredia poisťovne a agregačná časť je vykonaná funkciou Reduce.
Agregované podrobnosti spracovanej žiadosti sa uvádzajú ako výstup.
To sa stalo v našom predchádzajúcom príklade. Celý proces bol rozdelený na Mapovú úlohu a Zmenšiť úlohu.
Mapová úloha dostane vstup a výstup z mapovej úlohy sa zadá zmenšenej úlohe ako vstup a táto zmenšujúca úloha poskytne výstup konečne klientovi.
Aby sme to lepšie pochopili, prejdime si anatómiu MapReduce.
Úloha MapReduce funguje na páre kľúč - hodnota, takže keď hovoríme o mape, mapa berie vstup ako kľúč - hodnota a dáva výstup ako zoznam kľúč - hodnota. Tento zoznam párov kľúč - hodnota prechádza fázou zamiešania a vstup kľúča a zoznam hodnôt prešiel do reduktora.
Na záver nám reduktor poskytne zoznam párov kľúč - hodnota.
Príklad MapReduce - proces počítania slov
Zoberme si ďalší príklad, tj. Počet slov spracujte spôsobom MapReduce. Tento príklad je rovnaký ako úvodný príklad programovania v jazyku Java, tj. „Hello World“.
Podľa diagramu sme mali vstup a tento vstup sa rozdelil alebo sa rozdelil na rôzne vstupy. Tento proces sa teda nazýva Split Splitting a celý vstup sa rozdelí na rozdelenie údajov na základe nového znaku riadku.
Úplne prvý riadok je prvý vstup, t.j. Bigdata Hadoop MapReduce , druhý riadok je druhý Vstup t.j. MapReduce Hive Bigdata , podobne pre tretí vstup je Úľ Hadoop Mapa úľov Znížiť .
otvorte hashovaciu tabuľku adresovania c ++
Prejdime k ďalšej fáze, tj. Fáze mapovania. Teraz vo fáze mapovania vytvoríme zoznam párov kľúč - hodnota. Takže vstupom je kľúč a hodnota, tu kľúč nie je nič iné ako posunutie čísla riadku. Číslo riadku je Kľúč a celý riadok je Hodnota.
Pre riadok 1 je teda offset kľúčom a hodnotou je Bigdata Hadoop MapReduce . V skutočnom živote je číslo riadku alebo posunutie hexadecimálne číslo. Pre uľahčenie ho však budeme považovať iba za číslo 1 alebo 2.
Riadok 1 bude kľúčom a celý riadok bude hodnotou. Pri prechode funkciou mapovania to, čo mapovanie urobí, je vytvorenie zoznamu párov kľúč - hodnota. Napríklad, Veľké dáta , takže to, čo funkcia urobí, je, že prečíta každé slovo z riadku a za čiarkou označí jedno (1).
Označí jednu (1) ako Hodnotu; Páči sa mi to Bigdata, 1 Hadoop, 1 a MapReduce, 1 . Tu je otázka, prečo za každé slovo dávame jeden (1)?
Je to preto Veľké dáta je jeden počítať tak Bigdata, 1 . Podobne Hadoop, 1 a MapReduce, 1 sami majú jeden počet, preto jeden (1) označíme ako hodnotu. Rovnakým spôsobom pre druhý riadok alebo povedzme riadok 2 máme, MapReduce Hive Bigdata .
Rovnakým spôsobom teda funkcia mapovania pre ňu znova vytvorí zoznam párov kľúč-hodnota, a teda podľa počtu bude zoznam párov kľúč-hodnota zmenený MapReduce, 1 úľ, 1 a Bigdata, 1 .
Dostaneme to isté ako výsledok funkcie mapovania pre riadok 3, t.j. Úľ, 2 Hadoop, 1 a MapReduce, 1 .
Poďme k fáze miešania, v tejto fáze je pre každý kľúč pripravený zoznam. Fáza zamiešania nájde vzhľad Key Veľké dáta a pridá hodnoty do zoznamu. Poďme sa teda pozrieť, čo sa tu deje.
Ako vidíme dve prichádzajúce šípky, prvá šípka pochádza zo zoznamu 1 a ďalšia šípka pochádza zo zoznamu 2, takže výsledok bude Bigdata, (1,1) .
Podobne, keď vidíme slovo Hadoop , opäť pre Hadoop pre Zoznamy bude pripravený ďalší zoznam. Ako vidíme, dve prichádzajúce šípky ukazujú na Zamiešané, čo znamená slovo Hadoop bude vyzdvihnutý zo zoznamu 2, respektíve zoznamu 3, t. j. konečný výsledok po zamiešaní bude Hadoop, (1, 1) .
Rovnakým spôsobom dostaneme aj zvyšné slová ako Úľ (1, 1, 1) a MapReduce, (1, 1, 1) spolu s ich zoznamom hodnôt alebo povedzte zoznam počtu podľa dostupnosti slov v príslušných zoznamoch.
Teraz prichádzame do fázy redukcie, v tejto fáze začneme agregovať Hodnoty, ktoré boli v zozname, proti každému Kľúču. Tak pre Veľké dáta, v zozname boli prítomné dve hodnoty, t.j. (jedenásť) zadanie týchto hodnôt sa tak vykoná Bigdata, 2 .
Podobne pre Hadoop hodnota bude súčet t.j. (jedenásť) podanie bude Hadoop, 2 .
Rovnakým spôsobom pre Úľ a MapReduce, podanie na Redukčnú funkciu bude Úľ, 3 a MapReduce, 3 resp.
Konečný výsledok sa nakoniec odošle späť klientovi, ako je znázornené na nasledujúcom diagrame „Celkový proces počítania slov MapReduce“.
Celkový proces počítania slov MapReduce
Takto funguje celý proces počítania slov, keď používate MapReduce Way.
Záver
V tomto tutoriáli sme sa dozvedeli toto:
- Hadoop Map Reduce je „Spracovateľská jednotka“ Hadoop.
- Na spracovanie veľkých dát uložených pomocou Hadoop HDFS používame Hadoop Map Reduce.
- Používa sa pri vyhľadávaní a indexovaní, klasifikácii, odporúčaní a analýze.
- Má funkcie ako programovací model, paralelné programovanie a distribuovaný model veľkého rozsahu.
- Návrhový vzor MapReduce sú: Zhrnutie, klasifikácia najlepších záznamov, triedenie a analýza, ako je napríklad pripojenie a výber.
- Má iba dve funkcie tj. funkcia mapovača a reduktora.
- Paralelné spracovanie a lokalizácia údajov sú dobrými výhodami programu Hadoop MapReduce.
- Proces MapReduce je rozdelený do šiestich fáz, t. J. VSTUP, ROZDELENIE, MAPOVANIE, MIKROFÓN, REDUKCIA a KONEČNÝ VÝSLEDOK.
To je všetko pre tento tutoriál, v našich pripravovaných tutoriáloch sa budeme venovať:
- Ako funguje MapReduce s YARN a jeho súčasťami?
- Aplikačný pracovný tok PRIADZE.
- Čo je Spark a aký je rozdiel medzi Hadoop a Spark?
=> Skontrolujte VŠETKY výukové programy BigData tu.
Odporúčané čítanie
- Čo je Hadoop? Výukový program Apache Hadoop pre začiatočníkov
- Výukový program pre Python DateTime s príkladmi
- Výukový program Data Mart - Typy, príklady a implementácia Data Mart
- Dimenzionálny dátový model v dátovom sklade - návod s príkladmi
- Výukový program Java Array Length s príkladmi kódu
- Výukový program pre veľké dáta pre začiatočníkov Čo sú to veľké dáta?
- Výukový program pre skriptovanie Unixu s príkladmi
- Sprievodca hľadaním prvkov selénom podľa výučby s príkladmi