I denna Hadoop blogg, kommer vi att ge dig ett slut till slutet MapReduce jobbutförandeflöde. Här kommer vi att beskriva varje komponent som är den del av MapReduce som fungerar i detalj.
Den här bloggen hjälper dig att svara på hur Hadoop MapReduce fungerar, hur dataflöden i MapReduce, hur Mapreduce-jobbet utförs i Hadoop?
Vad är MapReduce?
Hadoop MapReduce är databearbetningsskiktet. Den bearbetar den enorma mängden strukturerad och ostrukturerad data som lagras i HDFS. MapReduce bearbetar data parallellt genom att dela upp jobbet i en uppsättning oberoende uppgifter. Så parallell bearbetning förbättrar hastigheten och tillförlitligheten.
Hadoop MapReduce databearbetning sker i 2 faser- Map och Reduce fas.
- Kartfas- Det är den första fasen av databehandling. I denna fas specificerar vi all komplex logik/affärsregler/dyr kod.
- Reducera fas- Det är den andra fasen av bearbetningen. I denna fas specificerar vi lättviktsbearbetning som aggregering/summering.
Steg för MapReduce Job Execution flow
MapReduce bearbetar data i olika faser med hjälp av olika komponenter. Låt oss diskutera stegen för jobbutförande i Hadoop.
1. Inmatningsfiler
I indatafiler lagras data för MapReduce-jobbet. I HDFS , indatafiler finns. Inmatningsfilers format är godtyckligt. Linjebaserade loggfiler och binärt format kan också användas.
2. InputFormat
Därefter definierar InputFormat hur man delar upp och läser dessa indatafiler. Den väljer filer eller andra objekt för inmatning. InputFormat skapar InputSplit.
3. InputSplits
Det representerar data som kommer att behandlas av en enskild Mapper . För varje delning skapas en kartuppgift. Således är antalet kartuppgifter lika med antalet InputSplits. Ramverk delar upp i poster, som mappar process.
4. RecordReader
Den kommunicerar med inputSplit. Och konverterar sedan data till nyckel-värdepar lämplig för läsning av Mapper. RecordReader använder som standard TextInputFormat för att konvertera data till ett nyckel-värdepar.
Den kommunicerar till InputSplit tills filläsningen är klar. Den tilldelar byte offset till varje rad som finns i filen. Sedan skickas dessa nyckel-värdepar vidare till mapparen för vidare bearbetning.
5. Kartläggare
Den bearbetar indatapost som produceras av RecordReader och genererar mellanliggande nyckel-värdepar. Mellanutgången är helt annorlunda än ingångsparet. Utdata från mapparen är den fullständiga samlingen av nyckel-värdepar.
Hadoop-ramverket lagrar inte utdata från mapper på HDFS. Det lagras inte, eftersom data är tillfälliga och skrivning på HDFS kommer att skapa onödiga flera kopior. Sedan skickar Mapper utdata till kombineraren för vidare bearbetning.
4. Kombinator
Combiner är Mini-reducer som utför lokal aggregering av mapparens utdata. Det minimerar dataöverföringen mellan mappar och reducerare. Så när combinerfunktionen är klar skickar ramverket utdata till partitioneraren för vidare bearbetning.
5. Partitionerare
Partitioner kommer till om vi arbetar med mer än en reducerare. Den tar utdata från combinern och utför partitionering.
Partitionering av utdata sker på basis av nyckeln i MapReduce. Med hash-funktion, härleder nyckel (eller en delmängd av nyckeln) partitionen.
På basis av nyckelvärdet i MapReduce sker partitionering av varje combiner-utgång. Och sedan går posten med samma nyckelvärde in i samma partition. Därefter skickas varje partition till en reducering.
Partitionering i MapReduce-körning möjliggör jämn fördelning av kartutdata över reduceraren.
6. Blanda och sortera
Efter partitionering blandas utdata till reduceringsnoden. Blandningen är den fysiska rörelsen av data som görs över nätverket. När alla kartläggare avslutar och blandar utdata på reducernoderna.
Sedan slår ram samman denna mellanutgång och sorterar. Detta tillhandahålls sedan som input för att reducera fasen.
7. Reducerare
Reducer tar sedan uppsättning av mellanliggande nyckel-värde-par som produceras av mappers som indata. Efter det körs en reduceringsfunktion på var och en av dem för att generera utdata.
Reducerarens utgång är den slutliga utgången. Ramverk lagrar sedan utdata på HDFS.
8. RecordWriter
Den skriver dessa utdata nyckel-värdepar från reduceringsfasen till utdatafilerna.
9. OutputFormat
OutputFormat definierar hur RecordReader skriver dessa utdatanyckel-värdepar i utdatafiler. Så, dess instanser som tillhandahålls av Hadoop skriver filer i HDFS. Sålunda skriver OutputFormat-instanser den slutliga utdata från reducerare på HDFS.
Slutsats
Vi har lärt oss steg för steg MapReduce jobbutförandeflöde. Jag hoppas att den här bloggen hjälper dig mycket att förstå hur MapReduce fungerar.
Om du fortfarande har några frågor relaterade till MapReduce jobbutförandeflöde, så kan du dela med oss i kommentarsfältet nedan. Vi kommer att göra vårt bästa för att lösa dem.