Vad är MapReduce i Hadoop?
MapReduce är ett programramverk och en programmeringsmodell som används för att bearbeta stora mängder data. MapReduce- programmets arbete i två faser, nämligen Map och Reduce. Kartuppgifter hanterar delning och mappning av data medan Minska uppgifter blandas och minskar data.
Hadoop kan köra MapReduce-program skrivna på olika språk: Java, Ruby, Python och C ++. Programmen för Map Reduce i molntjänster ä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 nyckel-värdepar . Dessutom måste varje programmerare ange två funktioner: kartfunktion och minskad funktion .
I den här nybörjaren Hadoop MapReduce lär du dig -
- Vad är MapReduce i Hadoop?
- MapReduce Architecture in Big Data förklaras i detalj
- MapReduce Architecture förklaras i detalj
- Hur MapReduce organiserar arbete?
MapReduce Architecture in Big Data förklaras i detalj
Hela processen går igenom fyra faser av exekveringen, 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 inmatningsdata för ditt MapReduce i Big data-program
Welcome to Hadoop ClassHadoop is goodHadoop is bad
Den slutliga utdata för MapReduce-uppgiften är
dålig | 1 |
Klass | 1 |
Bra | 1 |
Hadoop | 3 |
är | 2 |
till | 1 |
Välkommen | 1 |
Data går igenom följande faser av MapReduce i Big Data
Ingångssplittringar:
En ingång till ett MapReduce i Big Data-jobb är uppdelat i bitar i fast storlek som kallas ingångsdelningar Ingångssplit är en del av ingången som konsumeras av en enda karta
Kartläggning
Detta är den allra första fasen i genomförandet av kartreduceringsprogrammet. I denna fas skickas data i varje delning till en mappningsfunktion för att producera utdata. I vårt exempel är ett jobb med kartläggningsfasen att räkna ett antal förekomster av varje ord från ingångsdelningar (mer information om ingångssplitning ges nedan) och förbereda en lista i form av
Blandar
Denna fas förbrukar produktionen från Mapping-fasen. Dess uppgift är att konsolidera relevanta poster från Mapping phase output. I vårt exempel är samma ord förenade tillsammans med deras respektive frekvens.
Minskar
I denna fas aggregeras utgångsvärden från blandningsfasen. Den här fasen kombinerar värden från blandningsfasen och returnerar ett enda utgångsvärde. Kort sagt sammanfattar den här fasen hela datasetet.
I vårt exempel aggregerar denna fas värdena från Blandningsfasen, dvs. beräknar de totala förekomsten av varje ord.
MapReduce Architecture förklaras i detalj
- En kartuppgift skapas för varje delning som sedan kör kartfunktionen för varje post i delningen.
- Det är alltid fördelaktigt att ha flera uppdelningar eftersom det tar liten tid att bearbeta en uppdelning jämfört med den tid det tar att bearbeta hela ingången. När delningarna är mindre är bearbetningen bättre att balansera eftersom vi bearbetar delningarna parallellt.
- Det är emellertid inte önskvärt att ha splittringar för små i storlek. När delningarna är för små börjar överbelastningen av att hantera delningarna och skapandet av kartuppgifter att dominera den totala jobbet.
- För de flesta jobb är det bättre att skapa en delad storlek som motsvarar storleken på ett HDFS-block (som standard är 64 MB).
- Utförande av kartuppgifter resulterar i att skriva utdata 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 i händelse av HDFS-butiksdrift.
- Kartutdata är mellanutdata som bearbetas genom att reducera uppgifter för att producera den slutliga utdata.
- När jobbet är klart kan kartutmatningen kastas. Så att lagra det i HDFS med replikering blir överdrivet.
- I händelse av nodfel innan kartutmatningen konsumeras av reduceringsuppgiften kör Hadoop om kartuppgiften på en annan nod och återskapar kartutmatningen.
- Minska uppgiften fungerar inte på begreppet datalokalitet. En utdata från varje kartuppgift matas till reduceringsuppgiften. Kartutdata överförs till maskinen där reducera uppgiften körs.
- På den här maskinen slås utgången samman och skickas sedan till den användardefinierade reduceringsfunktionen.
- Till skillnad från kartutmatningen lagras reducerad utdata i HDFS (den första repliken lagras på den lokala noden och andra repliker lagras på off-rack-noder). Så, skriv reducera utdata
Hur MapReduce organiserar arbete?
Nu i denna MapReduce-handledning lär vi oss hur MapReduce fungerar
Hadoop delar upp jobbet i uppgifter. Det finns två typer av uppgifter:
- Kartuppgifter (Splits & Mapping)
- Minska uppgifter (blanda, minska)
som nämnts ovan.
Den fullständiga exekveringsprocessen (körning av Map och Reduce-uppgifter, båda) styrs av två typer av enheter som kallas a
- Jobtracker : Fungerar som en mästare (ansvarig för fullständigt utförande av inlämnat jobb)
- Flera uppgiftsspårare : Fungerar som slavar, var och en utför dem jobbet
För varje jobb som skickas för körning i systemet finns det en Jobtracker som finns på Namenode och det finns flera tasktrackers som finns 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 som ska köras på olika datanoder.
- Utförande av enskild uppgift är sedan att ta hand om av aktivitetsspårare, som finns på varje datanod som utför en del av jobbet.
- Task trackers ansvar är att skicka lägesrapporten till jobbspåraren.
- Dessutom skickar aktivitetsspåraren regelbundet "hjärtslag" -signal till Jobtracker för att meddela honom om systemets nuvarande tillstånd.
- Således spårar jobbspåraren den totala utvecklingen för varje jobb. I händelse av uppgifts misslyckande kan jobbspåraren omplanera den i en annan aktivitetsspårare.