Vad är MapReduce i Hadoop? Big Data Architecture
Vad är MapReduce i Hadoop?
MapReduce är ett ramverk för programvara och programmeringsmodell som används för att bearbeta enorma mängder data. MapReduce programarbete i två faser, nämligen Map och Reduce. Kartuppgifter handlar om uppdelning och kartläggning av data medan Reduce-uppgifter blandar och minskar data.
Hadoop kan köra MapReduce-program skrivna på olika språk: JavaRubin, Pythonoch C++. Programmen för Map Reduce i cloud computing är parallella till sin natur och är därför mycket användbara för att utföra storskalig dataanalys med flera maskiner i klustret.
Ingången till varje fas är nyckelvärde par. Dessutom måste varje programmerare specificera två funktioner: kartfunktion och minska funktionen.
MapReduce ArchiTecture i Big Data förklaras med exempel
Hela processen går igenom fyra faser av exekvering, nämligen delning, kartläggning, blandning och reducering.
Nu i denna MapReduce-handledning, låt oss förstå med ett MapReduce-exempel–
Tänk på att du har följande indata för din MapReduce in Big data program
Welcome to Hadoop Class Hadoop is good Hadoop is bad
Det slutliga resultatet av MapReduce-uppgiften är
illa | 1 |
Klass | 1 |
god | 1 |
Hadoop | 3 |
is | 2 |
till | 1 |
Välkommen | 1 |
Datan går igenom följande faser av MapReduce i Big Data
Ingångsdelningar:
En input till ett MapReduce i Big Data-jobb är uppdelat i bitar av fast storlek som kallas ingångsdelar Input split är en bit av indata som konsumeras av en enda karta
Kartläggning
Detta är den allra första fasen i exekveringen av kartreduceringsprogrammet. I denna fas skickas data i varje uppdelning till en mappningsfunktion för att producera utvärden. I vårt exempel är ett jobb med mappningsfasen att räkna ett antal förekomster av varje ord från ingångsdelningar (mer information om ingångsdelning ges nedan) och förbereda en lista i form av
blanda
Denna fas förbrukar utdata från mappningsfasen. Dess uppgift är att konsolidera relevanta poster från Mapping phase output. I vårt exempel är samma ord klubbade tillsammans med deras respektive frekvens.
Minska
I denna fas aggregeras utdatavärden från blandningsfasen. Denna fas kombinerar värden från blandningsfasen och returnerar ett enda utdatavärde. Kort sagt, denna fas sammanfattar hela datasetet.
I vårt exempel aggregerar den här fasen värdena från blandningsfasen, dvs. beräknar den totala förekomsten av varje ord.
MapReduce ArchiTecture förklaras i detalj
- En kartuppgift skapas för varje delning som sedan kör kartfunktion för varje post i delningen.
- Det är alltid fördelaktigt att ha flera uppdelningar eftersom tiden det tar att bearbeta en uppdelning är liten jämfört med tiden det tar för bearbetning av hela inmatningen. När delarna är mindre är bearbetningen bättre att lastbalanserad eftersom vi bearbetar delarna parallellt.
- Det är dock inte heller önskvärt att ha klyftor för små i storleken. När delningarna är för små börjar överbelastningen av att hantera delningarna och skapa kartuppgifter dominera den totala tiden för jobbkörning.
- För de flesta jobb är det bättre att göra en delad storlek som motsvarar storleken på ett HDFS-block (som är 64 MB, som standard).
- Utförande av kartuppgifter resulterar i att utdata skrivs till en lokal disk på respektive nod och inte till HDFS.
- Anledningen till att välja lokal disk framför HDFS är att undvika replikering som sker vid HDFS-lagringsdrift.
- Kartutdata är mellanutdata som bearbetas av reduceringsuppgifter för att producera den slutliga utdata.
- När jobbet är klart kan kartutdata slängas. Så att lagra det i HDFS med replikering blir överdrivet.
- I händelse av nodfel, innan kartutmatningen förbrukas av reduceringsuppgiften, kör Hadoop kartuppgiften igen på en annan nod och återskapar kartutdatan.
- Reducera-uppgiften fungerar inte på begreppet datalokalitet. En utdata från varje kartuppgift matas till reduceringsuppgiften. Kartutdata överförs till maskinen där reduceringsuppgiften körs.
- På den här maskinen slås utdata samman och skickas sedan till den användardefinierade reduceringsfunktionen.
- Till skillnad från kartutdata, lagras reducera utdata i HDFS (den första repliken lagras på den lokala noden och andra repliker lagras på off-rack-noder). Så, skriv reduceringen
Hur fungerar MapReduce Organizes?
Nu i denna MapReduce-handledning kommer vi att lära oss hur MapReduce fungerar
Hadoop delar upp jobbet i uppgifter. Det finns två typer av uppgifter:
- Kartuppgifter (Delingar och kartläggning)
- Minska arbetsuppgifter (Blandar, minskar)
som nämnts ovan.
Den fullständiga exekveringsprocessen (exekvering av Map- och Reduce-uppgifter, båda) styrs av två typer av enheter som kallas en
- Jobtracker: Fungerar som en Master (ansvarig för fullständigt utförande av inlämnat jobb)
- Flera uppgiftsspårare: Beter sig som slavar, var och en av dem utför jobbet
För varje jobb som skickas in för utförande i systemet finns det ett Jobtracker som bor på Namnnod och det finns flera tasktrackers som bor på Datanode.
- Ett jobb är uppdelat i flera uppgifter som sedan körs på flera datanoder i ett kluster.
- Det är jobbspårarens ansvar att samordna aktiviteten genom att schemalägga uppgifter att köra på olika datanoder.
- Utförande av enskild uppgift sköts sedan av uppgiftsspåraren, som finns på varje datanod som utför en del av jobbet.
- Uppgiftsspårarens ansvar är att skicka lägesrapporten till jobbspåraren.
- Dessutom skickar uppgiftsspåraren med jämna mellanrum 'hjärtslag' signal till Jobtracker för att meddela honom om systemets nuvarande tillstånd.
- Således håller jobbspåraren reda på den övergripande utvecklingen av varje jobb. I händelse av uppgiftsfel kan jobbspåraren schemalägga det på en annan uppgiftsspårare.