hadoop mapreduce tutorial with examples what is mapreduce
I denne veiledningen vil vi forstå hva som er MapReduce, fordelene og hvordan fungerer Hadoop Map Reduce med eksempler:
I den forrige opplæringen lærte vi om Hadoop HDFS og lese- og skrivemekanismene. La oss nå utforske en annen Hadoop-komponent, dvs. MapReduce.
La oss se nærmere på følgende:
- Hva er MapReduce?
- Fordelene
- Hva er den nøyaktige tilnærmingen til MapReduce?
=> Besøk her for den eksklusive opplæringsserien for BigData Training.
Hva du vil lære:
Hva er MapReduce?
La oss gå videre og starte med Hadoop Components. Som forklart tidligere er det to hovedkomponenter av Hadoop, dvs. Hadoop HDFS og Hadoop Map Reduce.
vent i sekunder
Hadoop HDFS er et fildistribusjonssystem som brukes til å lagre en enorm mengde data i flere stativer.
Her vil vi diskutere behandlingsenheten til Hadoop, dvs. MapReduce.
Det neste spørsmålet som oppstår er 'hva er Map Reduce og hvorfor det kreves?'
Hadoop MapReduce er 'Behandlingsenhet' og ved hjelp av denne komponenten kan vi behandle Big Data lagret på Hadoop HDFS.
Men hva er det nøyaktige kravet? Hvorfor trenger vi denne komponenten av Hadoop?
Big Data lagret på Hadoop HDFS lagres ikke tradisjonelt. Dataene blir delt inn i deler av data som er lagret i respektive DataNodes. Så hele dataene lagres ikke på ett sentralisert sted.
Derfor kan et innfødt klientprogram som Java eller et slikt program ikke behandle dataene i gjeldende format, og vi trenger et spesielt rammeverk som kan behandle de fragmenterte datablokkene som er lagret i respektive DataNodes.
Behandlingen gjøres ved hjelp av Hadoop MapReduce-behandling.
Kart Reduser i et nøtteskall
Ovenstående diagram gir en oversikt over Map Reduce, dets funksjoner og bruksområder.
La oss starte med applikasjonene til MapReduce og hvor brukes den. For eksempel, den brukes til Klassifikatorer, indeksering og søk , og skapelse av Anbefalingsmotorer på e-handelsnettsteder (Flipkart, Amazon, etc.) Den brukes også som Analytics av flere selskaper.
Når vi ser fra funksjonene perspektiv, er det en Programmeringsmodell og kan brukes til Stor skala fordelt Modell som Hadoop HDFS og har muligheten til parallell programmering som gjør det veldig nyttig.
Når vi ser funksjonene i Map Reduce, blir to funksjoner utført, dvs. Map Function og Reduce-funksjon.
Denne teknologien er implementert av store organisasjoner som Google, Yahoo, Facebook og ble også vedtatt av Apache Hadoop som HDFS, PIG, HIVE og for lagring av data eller utføring og prosessering av Big Data ved hjelp av HBase som også er kjent som No-SQL.
Fordeler med Map-Reduce
Det er to fordeler med denne teknologien.
# 1) Parallell behandling
Den aller første fordelen er parallellbehandling. Ved å bruke Map Reduce kan vi alltid behandle dataene parallelt.
I henhold til diagrammet ovenfor er det fem slave maskiner, og noen data ligger på disse maskinene. Her blir dataene behandlet parallelt ved hjelp av Hadoop Map Reduce, og dermed blir behandlingen rask.
Det som faktisk skjer her er at hele mengden data blir delt av Hadoop HDFS i HDFS Block, og Map-Reduce behandler disse bitene av data, og dermed blir behandlingen rask.
# 2) Datalokalitet
Dette er en allsidig ting som er gitt av Hadoop MapReduce, dvs. vi kan behandle dataene der de er.
Hva betyr det?
I den forrige HDFS-opplæringen forsto vi at dataene vi flyttet inn i Hadoop Cluster blir delt inn i HDFS-blokker, og disse blokkene lagres i SlaveMachines eller DataNodes. Map-Reduce registrerer prosessering og logikk til de respektive Slave Nodes eller DataNodes der dataene ligger som HDFS-blokker.
Behandlingen utføres over en mindre del data parallelt på flere steder. Dette sparer mye tid og nettverksbåndbredde som kreves for å flytte Big Data fra ett sted til et annet.
Bare husk at dataene vi behandler er Big Data brutt ned i biter, og hvis vi begynner å flytte Big Data direkte gjennom de tildelte nettverkskanalene til en sentraliseringsmaskin og behandle dem, så vil det ikke gi oss noen fordel ettersom vi skal konsumere hele båndbredden når du flytter dataene til en sentralisert server.
Fordeler:
Så ved å bruke Hadoop MapReduce gjør vi ikke bare “Parallell behandling” , vi behandler også dataene videre til de respektive slavernodene eller datanodene der biter av data er til stede, og derfor er vi også “Sparer mye nettverksbåndbredde” som er veldig gunstig.
Til slutt gjøres SlaveMachines med behandlingen av data som er lagret på SlaveMachines, og de sender resultatene tilbake til Master Machine, ettersom resultatene ikke er like store som blokkene som ble lagret på SlaveMachines. Derfor vil det ikke bruke mye båndbredde.
Slave Machines sender resultatet tilbake til Master Machine, disse resultatene blir samlet og det endelige resultatet sendes tilbake til Client Machine som sendte jobben.
Her dukker det opp et spørsmål - hvem bestemmer hvilke data som skal behandles på hvilken DataNode?
Klienten sender jobben til ressurssjefen og ressurssjefen er den som gir veiledningen til å utføre jobben på de respektive datanodene der dataene er bosatt, den bestemmer ut fra nærmeste datanode som er tilgjengelig, slik at mange nettverk Båndbredde brukes ikke.
Tradisjonelle vs. MapReduce Way
For å forklare dette, vil vi ta en realistisk analogi av forsikringsselskapets antall forsikringshavere, alle vil være klar over forsikringsselskapets policyer, ettersom de fleste av de store forsikringsselskapene har sine filialer i forskjellige byer.
I disse grenene er det ”n” antall mennesker som har søkt om livsforsikringspolicy.
La oss ta et scenario der vi har fem forsikringsselskapsgrener der folk kommer og søker om livsforsikringspolicyer. Nå har vi også ett hovedkontor i det forsikringsselskapet som har all informasjon om filialene som er tilgjengelige og lokaliserte.
Men når folk kommer og søker om livsforsikringspolise på de respektive grenene A, B, C, D, E, oppbevares forsikringssøknadene på de respektive filialene, og den informasjonen deles ikke med forsikringsselskapets hovedkontor.
Tradisjonell måte:
La oss se hvordan folk tradisjonelt søker om politikken. For å løse dette problemet tradisjonelt, vil alle søknadene bli flyttet til forsikringsselskapets hovedkvarter, og deretter starter søknadsprosessen.
I dette tilfellet må vi flytte alle søknadene til forsikringsselskapets hovedkontor, noe som er en kostbar affære, dvs. vi må samle alle søknadene fra forsikringsselskapets filialer og ta det til forsikringsselskapets hovedkontor.
Dette er hvordan kostnadene er involvert sammen med den enorme innsatsen for å gjøre denne aktiviteten.
Et annet aspekt av dette er det overbelastede forsikringsselskapets hovedkontor, da det må behandle alle søknadene som ble brukt av folket for politikk i de respektive grenene.
Ettersom forsikringsselskapet behandler søknadene som ble brukt i alle grenene, vil det ta lang tid. Til slutt fungerer ikke denne prosessen veldig bra.
MapReduce Way
La oss se hvordan Map-Reduce løser dette problemet.
MapReduce følger datalokalitet, det vil si at det ikke kommer til å bringe alle søknadene til forsikringsselskapets hovedkontor, i stedet vil det behandle søknader i de respektive avdelingene parallelt.
Når søknadene som ble brukt på hver gren var behandlet, sender de de behandlede detaljene tilbake til forsikringsselskapets hovedkontor.
Nå må forsikringsselskapets hovedkontor bare samle antall behandlede søknader som ble sendt fra respektive filialer og oppbevare detaljene i deres respektive database eller lagringssenter.
På denne måten vil behandlingen være veldig enkel og rask, og forsikringstakerne får fordelene på kort tid.
Kart Reduser i detalj
I vårt forrige eksempel hadde vi en inngang (applikasjoner) som ble distribuert mellom forskjellige grener, og hver innspill ble behandlet av den respektive kartfunksjonen.
Vi vet at MapReduce har to funksjoner, dvs. kartfunksjon og reduksjonsfunksjon.
Behandlingsdelen som ble utført på de respektive grenene ble gjort av kartfunksjonen. Så hver inngang (applikasjon) i hver gren ble behandlet ved hjelp av kartfunksjonen, etter at de behandlede detaljene ble sendt til forsikringsselskapets hovedkvarter, og aggregeringsdelen utføres av reduksjonsfunksjonen.
De aggregerte behandlede søknadsdetaljene er gitt som utdata.
Dette er hva som skjedde i vårt forrige eksempel. Hele prosessen ble delt inn i kartoppgave og reduser oppgave.
Kartoppgave får en inngang, og utdata fra kartoppgave blir gitt til Reduser oppgave som en inngang, og denne Reduser oppgave gir utdata til slutt til klienten.
For å forstå det på en bedre måte, la oss gå gjennom anatomien til MapReduce.
En MapReduce-oppgave fungerer på et nøkkelverdipar, så når vi snakker om et kart, tar kartet inngangen som nøkkelverdi og gir utdataene som en liste over nøkkelverdien. Denne listen over nøkkelverdier går gjennom en blandefase og Input of Key og en liste over verdier gikk til Reducer.
qa tester intervju spørsmål og svar pdf
Til slutt gir Reducer oss en liste over nøkkelverdiparene.
MapReduce Eksempel - Word Count Process
La oss ta et annet eksempel, dvs. Word Count Process the MapReduce Way. Dette eksemplet er det samme som det innledende eksemplet på Java-programmering, dvs. 'Hello World'.
I henhold til diagrammet hadde vi en inngang, og denne inngangen blir delt eller blir delt inn i forskjellige innganger. Så denne prosessen kalles Input Splitting, og hele Input blir delt inn i splitter av data basert på den nye linjekarakteren.
Den aller første linjen er den første inngangen, dvs. Bigdata Hadoop MapReduce , den andre linjen er den andre inngangen, dvs. MapReduce Hive Bigdata På samme måte er det for den tredje inngangen Hive Hadoop Hive MapReduce .
La oss gå videre til neste fase, dvs. kartleggingsfasen. Nå i kartleggingsfasen oppretter vi en liste over nøkkelverdipar. Så inngangen er nøkkel og verdi, her er nøkkel ingenting annet enn forskyvningen av linjenummeret. Linjenummeret er nøkkelen, og hele linjen er verdien.
Så for linje 1 er forskyvningen nøkkelen og verdien er Bigdata Hadoop MapReduce . I virkeligheten er linjenummeret eller forskyvningen et heksadesimalt tall, men for å gjøre det enkelt, vil vi bare betrakte det som nummer 1 eller 2.
Så linje 1 vil være nøkkelen, og hele linjen vil være verdien. Når den går gjennom Mapping-funksjonen hva Mapping vil gjøre, vil den opprette listen over nøkkelverdipar. For eksempel, Stor Data , så hva funksjonen vil gjøre er, den vil lese hvert ord på linjen og markere ett (1) etter kommaet.
Det vil markere en (1) som en verdi; som Bigdata, 1 Hadoop, 1 og MapReduce, 1 . Her er spørsmålet hvorfor vi setter en (1) etter hvert ord?
Det er fordi Stor Data er en telling så Bigdata, 1 . På samme måte, Hadoop, 1 og MapReduce, 1 har selv en telling, det er derfor vi markerer en (1) som en verdi. På samme måte for andre linje eller si linje 2 vi har, MapReduce Hive Bigdata .
Så på samme måte oppretter kartleggingsfunksjonen igjen listen over nøkkelverdipar for den, og dermed vil antallet nøkkelverdipar i henhold til antall være MapReduce, 1 Hive, 1 og Bigdata, 1 .
Vi vil få det samme som et resultat av kartleggingsfunksjonen for linje 3, dvs. Hive, 2 Hadoop, 1 og MapReduce, 1 .
La oss gå videre til Shuffling-fasen, i denne fasen er det en liste utarbeidet for hver nøkkel. Shuffling-fasen vil finne utseendet til Key Stor Data og det vil legge til verdiene i listen. Så la oss se hva som skjer her.
Som vi kan se to innkommende piler, kommer den første pilen fra liste 1 og en annen pil kommer fra liste 2, så resultatet blir Bigdata, (1,1) .
Tilsvarende når vi ser ordet Hadoop , igjen for Hadoop en annen liste vil bli utarbeidet for verdier. Som vi kan se, peker to innkommende piler på Shuffling som betyr ordet Hadoop hentes fra henholdsvis liste 2 og liste 3, dvs. det endelige resultatet etter blanding blir Hadoop, (1, 1) .
På samme måte vil vi få resten av ordene som Hive, (1, 1, 1) og MapReduce, (1, 1, 1) sammen med listen over verdier eller si listen over tell i henhold til tilgjengeligheten av ord i de respektive listene.
Nå kommer til reduksjonsfasen, i denne fasen starter vi aggregering av verdiene som var til stede i listen mot hver nøkkel. Så for Stor Data, det var to verdier til stede i listen, dvs. (elleve) dermed vil innlevering av disse verdiene gjøres slik Bigdata, 2 .
Tilsvarende for Hadoop Verdien vil være sum dvs. (elleve) innsendingen blir Hadoop, 2 .
På samme måte for Hive og Kart reduksjon, innsendingen for Reduksjonsfunksjon vil være Hive, 3 og MapReduce, 3 henholdsvis.
Endelig vil det endelige resultatet bli sendt tilbake til klienten som vist i diagrammet nedenfor for 'The Overall MapReduce Word Count Process'
Den samlede MapReduce Word Count Process
Slik fungerer hele Word Count-prosessen når du bruker MapReduce Way.
Konklusjon
I denne opplæringen lærte vi følgende:
- Hadoop Map Reduce er 'Behandlingsenhet' av Hadoop.
- For å behandle Big Data lagret av Hadoop HDFS bruker vi Hadoop Map Reduce.
- Den brukes i Søking og indeksering, Klassifisering, Anbefaling og Analytics.
- Den har funksjoner som programmeringsmodell, parallell programmering og storskala distribuert modell.
- Designing Pattern of MapReduce er: Oppsummering, klassifisering av topplister, sortering og analyse som Join and Selection.
- Den har bare to funksjoner dvs. Mapper-funksjon og Reduksjonsfunksjon.
- Parallell behandling og datalokalitet er de gode fordelene med Hadoop MapReduce.
- Prosessen med MapReduce er delt inn i seks faser, dvs. INNGANG, SPLITTING, MAPPING, SHUFFLING, REDUCING og FINAL RESULT.
Dette er alt for denne opplæringen, i de kommende opplæringene vil vi dekke:
- Hvordan fungerer MapReduce med YARN og dets komponenter?
- Søknad arbeidsflyt av garn.
- Hva er Spark og hva er forskjellen mellom Hadoop og Spark?
=> Sjekk ALLE BigData-opplæringsprogrammer her.
Anbefalt lesing
- Hva er Hadoop? Apache Hadoop-veiledning for nybegynnere
- Python DateTime Tutorial med eksempler
- Data Mart Tutorial - Typer, eksempler og implementering av Data Mart
- Dimensjonal datamodell i datavarehus - veiledning med eksempler
- Java Array Length Tutorial With Code Eksempler
- Big Data Tutorial for nybegynnere | Hva er Big Data?
- Unix Shell Scripting Tutorial med eksempler
- Selen Find Element By Text Tutorial med eksempler