hadoop mapreduce tutorial with examples what is mapreduce
U ovom vodiču shvatit ćemo što je MapReduce, njegove prednosti i kako Hadoop Map Reduce radi s primjerima:
U prethodnom uputstvu saznali smo o Hadoop HDFS-u i mehanizmima čitanja i pisanja. Sada ćemo istražiti još jednu komponentu Hadoop, tj. MapReduce.
Razmotrimo detaljno sljedeće:
- Što je MapReduce?
- Njegove prednosti
- Koji je točan pristup MapReducea?
=> Posjetite ovdje za ekskluzivnu seriju vodiča za trening BigData.
Što ćete naučiti:
Što je MapReduce?
Krenimo dalje i započnimo s Hadoop Components. Kao što je ranije objašnjeno, postoje dvije glavne komponente Hadoopa, tj. Hadoop HDFS i Hadoop Map Reduce.
Hadoop HDFS je sustav za distribuciju datoteka koji se koristi za spremanje velike količine podataka u više stalaka.
Ovdje ćemo razgovarati o procesorskoj jedinici Hadoop, tj. MapReduce.
Sljedeće pitanje koje se postavlja je 'što je Map Reduce i zašto je potrebno?'
Hadoop MapReduce je “Jedinica za obradu” i pomoću ove komponente možemo obrađivati velike podatke pohranjene na Hadoop HDFS-u.
Ali koji je točan zahtjev? Zašto nam je potrebna ova komponenta Hadoopa?
Veliki podaci pohranjeni na Hadoop HDFS-u tradicionalno se ne pohranjuju. Podaci se dijele na dijelove podataka pohranjenih u odgovarajućim DataNodes-ima. Dakle, cjelokupni podaci nisu pohranjeni na jednom centraliziranom mjestu.
Stoga izvorna klijentska aplikacija poput Jave ili bilo koje takve aplikacije ne može obrađivati podatke u trenutnom formatu i potreban nam je poseban okvir koji može obraditi fragmentirane blokove podataka pohranjene u odgovarajućim DataNodes.
Obrada se vrši pomoću obrade Hadoop MapReduce.
Zemljovid smanjite u malom
Gornji dijagram daje pregled Map Reducea, njegovih značajki i upotrebe.
Krenimo od aplikacija MapReduce i od toga gdje se koristi. Na primjer, koristi se za Klasifikatori, indeksiranje i pretraživanje , i Stvaranje Motori za preporuke na web mjestima e-trgovine (Flipkart, Amazon, itd.) Također se koristi kao Analitika nekoliko tvrtki.
Kad gledamo iz perspektive značajki, to je a Model programiranja a može se koristiti za Distribuirano u velikim razmjerima Model poput Hadoop HDFS-a i ima mogućnost paralelnog programiranja što ga čini vrlo korisnim.
Kada vidimo funkcije u Map Reduce, izvršavaju se dvije funkcije, tj. Map Function i Reduce.
Ovu tehnologiju implementirale su velike organizacije poput Googlea, Yahooa, Facebooka, a također je prihvatio Apache Hadoop poput HDFS-a, PIG-a, HIVE-a i za pohranu podataka ili izvršavanje i obradu velikih podataka pomoću HBase koji je poznat i kao No-SQL.
Prednosti smanjenja karte
Dvije su prednosti ove tehnologije.
# 1) Paralelna obrada
Prva prednost je paralelna obrada. Korištenjem Map Reduce uvijek možemo paralelno obrađivati podatke.
Prema gornjem dijagramu, postoji pet podređenih strojeva i neki podaci nalaze se na tim strojevima. Ovdje se podaci paralelno obrađuju pomoću Hadoop Map Reduce i obrada postaje brza.
Zapravo se ovdje događa da se cijeli dio podataka podijeli Hadoop HDFS-om na HDFS Block i Map-Reduce obradi te dijelove podataka i tako obrada postaje brza.
# 2) Lokacija podataka
Ovo je jedna svestrana stvar koju daje Hadoop MapReduce, tj. Možemo obrađivati podatke tamo gdje jesu.
Što to znači?
kako dodati elemente niza
U prethodnom vodiču za HDFS shvatili smo da se podaci koje smo premjestili u Hadoop klaster dijele na HDFS blokove i ti se blokovi spremaju u SlaveMachines ili DataNodes. Map-Reduce osjeti obradu i logiku na odgovarajuće podređene čvorove ili čvorove podataka u kojima se podaci nalaze kao HDFS blokovi.
Obrada se izvodi na manjem dijelu podataka na više paralelnih lokacija. To štedi puno vremena, kao i mrežnu propusnost koja je potrebna za premještanje velikih podataka s jednog mjesta na drugo.
Sjetite se samo da su podaci koje obrađujemo Big Data podijeljeni na komade, a ako počnemo premještati Big Data izravno kroz dodijeljene mrežne kanale u centralizirani stroj i obrađivati ga, tada nam neće donijeti prednost jer ćemo trošiti cijelu propusnost u premještanju podataka na centralizirani poslužitelj.
Prednosti:
Dakle, koristeći Hadoop MapReduce ne radimo samo “Paralelna obrada” , također obrađujemo podatke na odgovarajuće podređene čvorove ili čvorove podataka gdje su prisutni dijelovi podataka, a time smo i mi 'Ušteda puno mrežne propusnosti' što je vrlo korisno.
Napokon, SlaveMachines završavaju s obradom podataka pohranjenih na SlaveMachines i vraćaju rezultate na Master Machine jer rezultati nisu toliko veliki kao blokovi koji su pohranjeni na SlaveMachines. Stoga neće koristiti puno propusnosti.
Podređeni strojevi šalju rezultat natrag glavnom stroju, oni se zbrajaju zajedno, a konačni rezultat vraća natrag klijentskom stroju koji je poslao posao.
Ovdje se postavlja jedno pitanje - tko odlučuje koje podatke treba obrađivati na kojem DataNodeu?
Klijent predaje posao Upravitelju resursa, a Upravitelj resursa je taj koji daje smjer za izvršavanje posla na odgovarajućim DataNodovima u kojima se podaci nalaze, a on odlučuje na temelju najbližeg DataNode koji je dostupan tako da puno Mreže Propusnost se ne koristi.
Tradicionalni vs. MapReduce Way
Da bismo to objasnili, poduzet ćemo stvarnu analogiju broja prijava osiguravatelja osiguravajućeg društva, svi bi bili upoznati s politikama osiguravajućih društava, jer većina velikih osiguravajućih društava ima podružnice u raznim gradovima.
U tim podružnicama postoji „n“ broj ljudi koji su se prijavili za politike životnog osiguranja.
Uzmimo scenarij u kojem imamo pet podružnica osiguravajućih društava u koje ljudi dolaze i prijavljuju se za politike životnog osiguranja. Sada imamo i sjedište tog osiguravajućeg društva koje ima sve podatke o podružnicama koje su dostupne i smještene.
Međutim, kada ljudi dođu i prijave se za polise životnog osiguranja u odgovarajućim podružnicama A, B, C, D, E, zahtjevi za polise čuvaju se u odgovarajućim podružnicama i ti se podaci ne dijele sa sjedištem osiguravajućeg društva.
Tradicionalni način:
Pogledajmo kako se ljudi tradicionalno prijavljuju za ovu politiku. Da bi se taj problem tradicionalno riješio, sve prijave premjestit će se u sjedište osiguravajućeg društva, a zatim će započeti postupak prijave.
U ovom slučaju moramo sve prijave premjestiti u sjedište osiguravajućeg društva što je skupa stvar, tj. Sve prijave moramo prikupiti iz podružnica osiguravajućeg društva i odnijeti u sjedište osiguravajućeg društva.
Na taj je način uključen trošak, zajedno s ogromnim naporima u obavljanju ove aktivnosti.
Sljedeći aspekt toga je preopterećeno sjedište osiguravajućeg društva, jer mora obraditi sve zahtjeve koje su ljudi primijenili za police u odgovarajućim podružnicama.
Kako osiguravajuće društvo obrađuje zahtjeve koji su primijenjeni u svim podružnicama, to će potrajati dugo. Na kraju, ovaj postupak ne funkcionira baš najbolje.
MapReduce Way
Pogledajmo kako Map-Reduce rješava ovaj problem.
MapReduce slijedi Lokaciju podataka, tj. Neće donijeti sve prijave u sjedište osiguravajućeg društva, već će paralelno obavljati obradu zahtjeva u odgovarajućim podružnicama.
najbolji softver za optimizaciju za Windows 10
Nakon obrade zahtjeva koji su primijenjeni na svaku podružnicu, obrađene podatke vraćaju u sjedište osiguravajućeg društva.
Sada sjedište osiguravajućeg društva samo mora prikupiti broj obrađenih zahtjeva koji su poslani iz odgovarajućih podružnica i zadržati detalje u njihovoj bazi podataka ili skladišnom centru.
Na taj će način obrada biti vrlo jednostavna i brza, a osiguranici u kratkom roku ostvaruju pogodnosti.
Karta detaljno smanji
U našem prethodnom primjeru imali smo ulaz (aplikacije) koji su se distribuirali između različitih grana i svaki je ulaz obrađivao odgovarajuća funkcija karte.
Znamo da MapReduce ima dvije funkcije, tj. Funkciju karte i funkciju smanjenja.
Obrada koja je izvršena na odgovarajućim granama izvršena je pomoću funkcije Map. Dakle, svaki ulaz (aplikacija) u svakoj podružnici obrađen je pomoću funkcije Map, nakon toga su obrađeni detalji poslani u sjedište osiguravajućeg društva, a dio agregiranja vrši funkcija smanjenja.
Skupni obrađeni detalji aplikacije daju se kao izlaz.
To se dogodilo u našem prethodnom primjeru. Čitav postupak podijeljen je na Zadatak mape i Zadatak smanjenja.
Zadatak karte dobiva ulaz i izlaz zadatka karte daje se reduciranom zadatku kao ulaz, a ovaj zadatak smanjenja daje izlaz konačno klijentu.
Da bismo to bolje razumjeli, prođimo kroz anatomiju MapReducea.
Zadatak MapReduce radi na paru ključ / vrijednost, pa kada govorimo o karti, karta uzima ulaz kao ključ / vrijednost i daje izlaz kao popis ključa / vrijednosti. Ovaj popis ključa / vrijednosti prolazi kroz fazu miješanja, a unos ključa i popisa vrijednosti otišao je na reduktor.
Na kraju, reduktor nam daje popis parova ključ / vrijednost.
Primjer MapReduce - postupak brojanja riječi
Uzmimo još jedan primjer, tj. Broj riječi obrađujemo MapReduce Way. Ovaj je primjer jednak uvodnom primjeru Java programiranja, tj. 'Hello World'.
Prema dijagramu, imali smo ulaz i taj se ulaz dijeli ili dijeli na različite ulaze. Dakle, taj se postupak naziva Ulazno dijeljenje, a cijeli se unos dijeli na dijeljenja podataka na temelju novog znaka retka.
Prvi redak je prvi ulaz tj. Bigdata Hadoop MapReduce , drugi redak je drugi ulaz tj. MapReduce košnica Bigdata , slično, za treći ulaz je Karta košnica Hadoop Hiveopusnica .
Krenimo na sljedeću fazu tj. Fazu preslikavanja. Sada u fazi mapiranja kreiramo popis parova ključ / vrijednost. Dakle, ulaz je ključ i vrijednost, ovdje ključ nije ništa drugo nego pomak broja retka. Broj retka je Ključ, a cijeli redak Vrijednost.
Dakle, za redak 1 pomak je ključ, a vrijednost je Bigdata Hadoop MapReduce . U stvarnom životu broj linije ili pomak je heksadecimalni broj, međutim, da bismo ga olakšali, smatrat ćemo ga samo brojem 1 ili 2.
Dakle, redak 1 bit će ključ, a cijeli redak vrijednost. Kada prolazi kroz funkciju mapiranja, ono što će mapiranje učiniti je, stvorit će popis parova ključ / vrijednost. Na primjer, Bigdata , dakle, što će funkcija učiniti, ona će pročitati svaku riječ u retku i označiti jednu (1) nakon zareza.
Označit će jedan (1) kao vrijednost; Kao Bigdata, 1 Hadoop, 1 i MapReduce, 1 . Ovdje se postavlja pitanje zašto nakon svake riječi stavljamo po jedan (1)?
To je zato Bigdata je jedan broj tako Bigdata, 1 . Slično tome, Hadoop, 1 i MapReduce, 1 imaju samo jedan broj, zato jedan (1) označavamo kao vrijednost. Na isti način za drugi ili recimo redak 2 imamo, MapReduce košnica Bigdata .
Dakle, na isti način, funkcija mapiranja ponovno stvara popis parova ključ / vrijednost za nju i prema tome, prema brojanju, popis parova ključ / vrijednost bit će MapReduce, 1 košnica, 1 i Bigdata, 1 .
Dobit ćemo isto kao rezultat funkcije preslikavanja za redak 3, tj. Košnica, 2 Hadoop, 1 i MapReduce, 1 .
Prijeđimo na fazu miješanja, u ovoj fazi za svaki ključ postoji pripremljeni popis. Faza miješanja pronaći će izgled Key Bigdata te će dodati vrijednosti na popis. Pa da vidimo što se ovdje događa.
Kao što možemo vidjeti dvije dolazne strelice, prva strelica dolazi s popisa 1, a druga strelica s popisa 2, tako da će rezultat biti Bigdata, (1,1) .
Slično tome, kad vidimo riječ Hadoop , opet za Hadoop pripremit će se još jedan popis za Vrijednosti. Kao što vidimo dvije dolazne strelice upućuju na miješanje što znači riječ Hadoop pokupit će se s popisa 2, odnosno popisa 3, tj. konačni rezultat nakon izmjene bit će Hadoop, (1, 1) .
Na isti ćemo način dobiti i ostale riječi poput Košnica, (1, 1, 1) i MapReduce, (1, 1, 1) zajedno s njihovim popisom vrijednosti ili recite popis Count prema dostupnosti riječi na odgovarajućim popisima.
Sada dođite do faze smanjenja, u ovoj fazi započinjemo agregiranje vrijednosti koje su bile prisutne na popisu prema svakom ključu. Tako za Bigdata, na popisu su bile prisutne dvije vrijednosti tj. (jedanaest) tako će se predaja ovih vrijednosti izvršiti tako Bigdata, 2 .
Slično tome, za Hadoop vrijednost će biti zbroj tj. (jedanaest) podnesak će biti Hadoop, 2 .
Na isti način za Košnica i MapReduce, podnesak za funkciju smanjenja bit će Košnica, 3 i MapReduce, 3 odnosno.
Napokon, konačni rezultat bit će poslan natrag klijentu, kao što je prikazano na donjem dijagramu 'Cjelokupni postupak brojanja riječi MapReduce'
Cjelokupni postupak MapReduce Word Count
koji programi mogu uređivati pdf datoteke
Tako funkcionira cijeli postupak brojanja riječi kada koristite MapReduce Way.
Zaključak
U ovom uputstvu naučili smo sljedeće:
- Hadoop Map Reduce je “Jedinica za obradu” od Hadoopa.
- Za obradu velikih podataka koje pohranjuje Hadoop HDFS koristimo Hadoop Map Reduce.
- Koristi se u pretraživanju i indeksiranju, klasifikaciji, preporukama i analitici.
- Ima značajke poput Programskog modela, Paralelnog programiranja i Distribuiranog modela velikih razmjera.
- Dizajn uzorka MapReducea su: Sažimanje, klasifikacija najboljih zapisa, sortiranje i analitika poput Pridruživanje i odabir.
- Ima samo dvije funkcije tj. Mapper funkcija i funkcija reduktora.
- Paralelna obrada i lokalnost podataka dobre su prednosti Hadoop MapReducea.
- Proces MapReducea podijeljen je u šest faza, tj. ULAZ, PODIJELJIVANJE, KARTIRANJE, MJENJANJE, SMANJENJE i KONAČNI REZULTAT.
To je sve za ovaj vodič, u našim narednim vodičima pokrivat ćemo:
- Kako MapReduce radi s PREĐOM i njezinim komponentama?
- Tijek rada aplikacije PREĐA.
- Što je Spark i koja je razlika između Hadoop i Spark?
=> Ovdje provjerite SVE upute za BigData.
Preporučena literatura
- Što je Hadoop? Vodič za Apache Hadoop za početnike
- Python DateTime Vodič s primjerima
- Data Mart Tutorial - Vrste, primjeri i provedba Data Mart
- Dimenzionalni model podataka u skladištu podataka - Vodič s primjerima
- Vodič za dužinu Java polja s primjerima koda
- Vodič za velike podatke za početnike | Što su veliki podaci?
- Vodič za skripte za Unix Shell sa primjerima
- Selen Pronađi element pomoću udžbenika teksta s primjerima