Geek Dirt

apr 24, 2021

i det första inlägget av Hadoop-serien introduktion av Hadoop och kör ett map-reduce-program förklarade jag grunderna i Map-Reduce. I det här inlägget förklarar Jag dess olika komponenter som partitionering, blandning, kombinerare, sammanslagning, sortering först och sedan hur det fungerar.

partitionering:

om antalet reducerare är 2 och hashfunktionen är:

#This function would return the data passes in itfunction hash(data){#this is just for example purposereturn data;}

sedan för Nyckel 1:

partitionsnummer = hash(1) % 2 = 1;

för Nyckel 2:

partitionsnummer = hash(2) % 2 = 0;

för Nyckel 4:

partitionsnummer = hash(4) % 2 = 0;

det betyder att utgång för Nyckel 1 skulle gå i partition_1 och utgång för Nyckel 2 och 4 skulle gå i partition_0.

blanda:

i den slutliga utmatningen av map task kan det finnas flera partitioner och dessa partitioner ska gå till olika minska uppgift. Blanda är i princip överföra karta utgångs partitioner till motsvarande minska uppgifter. Map task notified application master om slutförandet av map task och application master meddelar motsvarande reducer för att kopiera kartutmatningen till reduce machine.

Combiner:

sortering:

det sorterar bara data baserat på nycklar.

sammanslagning:

detta händer på reducersidan. Reducer kan få data från flera kartuppgifter och genom sammanslagning sammanfogar den data för olika kartuppgifter i en enda enhet och upprätthåller sorteringsordningen.

karta-minska i detalj:

karta:

den har en i minnet circular buffer och den skriver direkt till buffert. När buffert når tröskelvärdet (standard 80%) börjar det skriva till spill file genom en separat background thread. Kartuppgift kan fortfarande skriva att den matas ut till buffert medan bakgrundstråden körs. Innan du skriver till spillfil, kartutdata som är nyckelvärdespar partitioneras och sorteras. Om en combiner är där, blir det också Kör som minskar utgångsstorleken.

efter uppgiften sorteras alla spillfiler igen och en enda fil skapas som partitioneras och sorteras. Betyder att den här slutliga utdatafilen har flera partitioner. Efter karta uppgift i klar för en nod dess utgång skickas till reducer. Det är därför du ser minska aktivitet mer än 0% medan kartan är mindre än <100%.

när du har en karta-bara uppgift, det är inte blanda alls, vilket innebär att kartläggare kommer att skriva den slutliga utgången direkt till HDFS.

minska:

efter att ha fått data från kartuppgiften sammanfogar den data till en enda enhet under merge phase. Istället för att slå samman alla filer direkt till en, använder den konceptet till merge factor , vars syfte är att minimera mängden data som skrivs till disken. Under reduktionsfasen anropas sedan reduktionsfunktionen för varje tangent i den sorterade utgången. Utgången från denna fas skrivs direkt till utdatafilsystemet, vanligtvis HDFS.

användbara länkar:

introduktion och bearbetning av garn

Lämna ett svar

Din e-postadress kommer inte publiceras.