Introduktion till MapReduce
MapReduce är en beräkningskomponent i Hadoop Framework för att enkelt skriva applikationer som behandlar stora mängder data parallellt och lagras på stora kluster av billiga varuutrustning på ett pålitligt och feltolerant sätt. I det här ämnet kommer vi att lära oss om hur MapReduce fungerar?
MapReduce kan utföra distribuerade och parallella beräkningar med stora datasätt över ett stort antal noder. Ett MapReduce-jobb delar vanligtvis ingångsdatasätten och bearbetar sedan var och en av dem oberoende av kartuppgifterna på ett helt parallellt sätt. Outputen sorteras sedan och matas in för att minska uppgifterna. Både jobbinmatning och utgång lagras i filsystem. Uppgifterna planeras och övervakas av ramverket.
Hur fungerar MapReduce?
MapReduce-arkitekturen innehåller två kärnkomponenter som Daemon-tjänster som ansvarar för att köra mapper- och reduceringsuppgifter, övervaka och återupprätta uppgifterna vid fel. I Hadoop 2 och framåt är Resource Manager och Node Manager dememon-tjänsterna. När jobbklienten skickar in ett MapReduce-jobb kommer dessa demoner att agera. De ansvarar också för parallellbehandling och feltoleransfunktioner i MapReduce-jobb.
I Hadoop 2 och framåt är resurshantering och jobbplanering eller övervakning av funktionaliteter segregerade av YARN (Yet Another Resource Negotiator) som olika demoner. Jämfört med Hadoop 1 med Job Tracker och Task Tracker innehåller Hadoop 2 en global Resource Manager (RM) och Application Masters (AM) för varje applikation.
- Jobbklienten skickar in jobbet till resurshanteraren.
- YARN Resource Managers schemaläggare är ansvarig för samordningen av resursallokering av klustret bland de körande applikationerna.
- YARN Node Manager körs på varje nod och utför resurshantering på nodnivå, samordnad med Resource Manager. Den lanserar och övervakar datorkontainrarna på maskinen i klustret.
- Application Master hjälper resurserna från Resource Manager och använder Node Manager för att köra och koordinera MapReduce-uppgifter.
- HDFS används vanligtvis för att dela jobbfilerna mellan andra enheter.
Faser av MapReduce-modellen
MapReduce-modellen har tre stora och en valfri fas:
1. Mapper
- Det är den första fasen av MapReduce-programmering och innehåller kodningslogiken för mapper-funktionen.
- Den villkorade logiken tillämpas på 'n' antal datablock som är spridda över olika datanoder.
- Mapper-funktion accepterar nyckelvärdespar som inmatning som (k, v), där tangenten representerar offsetadressen för varje post och värdet representerar hela postinnehållet.
- Utmatningen från Mapper-fasen kommer också att vara i nyckelvärdesformatet som (k ', v').
2. Blanda och sortera
- Utgången från olika kartläggare (k ', v') går sedan in i blandnings- och sorteringsfasen.
- Alla duplikatvärden tas bort och olika värden grupperas tillsammans baserat på liknande nycklar.
- Utgången från Shuffle and Sort-fasen kommer att vara nyckelvärdespar igen som nyckel och matris med värden (k, v ()).
3. Minskare
- Utgången från Shuffle and Sort-fasen (k, v ()) är ingången till Reducer-fasen.
- I denna fas reducerar funktionens logik och alla värden aggregeras mot motsvarande tangenter.
- Reducer konsoliderar utgångar från olika kartläggare och beräknar den slutliga jobben.
- Den slutliga utgången skrivs sedan till en enda fil i en utgångskatalog med HDFS.
4. Combiner
- Det är en valfri fas i MapReduce-modellen.
- Kombineringsfasen används för att optimera prestanda för MapReduce-jobb.
- I denna fas reduceras olika utgångar från kartläggarna lokalt på nodnivån.
- Om till exempel olika mapperutgångar (k, v) som kommer från en enda nod innehåller duplikat, kombineras de, dvs lokalt reduceras som en enda (k, v ()) utgång.
- Denna fas gör att Shuffle and Sort-fasen fungerar ännu snabbare och möjliggör ytterligare prestanda i MapReduce-jobb.
Alla dessa faser i ett MapReduce-jobb kan beskrivas enligt nedan:
MapReduce-logiken för att hitta ordräkningen på en rad ord kan till exempel visas enligt nedan:
fruits_array = (äpple, apelsin, äpple, guava, druvor, apelsin, äpple)
- Mapper-fasen markerar inmatningsfältet med ord i 'n' antal ord för att ge utgången som (k, v). Tänk till exempel på "äpple". Mapper-utgången kommer att vara (apple, 1), (apple, 1), (apple, 1).
- Blanda och sortera acceptera mapperutgången (k, v) och gruppera alla värden enligt deras tangenter som (k, v ()). dvs (äpple, (1, 1, 1)).
- Reducer-fasen accepterar blandning och sortering av utgången och ger aggregatet av värdena (äpple, (1 + 1 + 1)), motsvarande deras nycklar. dvs (äpple, 3).
Spekulativt utförande av MapReduce-arbete
Hastigheten för MapReduce domineras av den långsammaste uppgiften. Så för att öka hastigheten kommer en ny mapper att fungera på samma dataset samtidigt. Den som slutför uppgiften betraktas som den slutliga utgången och den andra dödas. Det är en optimeringsteknik.
Fördelarna med MapReduce
Här nämns fördelarna med MapReduce nedan
1. Fel-tolerans
- Under mitten av ett kartminskande jobb, hanterar felet om en maskin med några få datablock misslyckas.
- Den betraktar replikerade kopior av blocken i alternativa maskiner för vidare bearbetning.
2. Motståndskraft
- Varje nod uppdaterar periodvis sin status till huvudnoden.
- Om en slavnod inte skickar sitt meddelande, tilldelar huvudnoden den aktuella löpande uppgiften för den slavnoden till andra tillgängliga noder i klustret.
3. Snabb
- Databehandlingen går snabbt eftersom MapReduce använder HDFS som lagringssystem.
- MapReduce tar några minuter att behandla terabyte med ostrukturerade stora datamängder.
4. Parallell bearbetning
- MapReduce-uppgifter bearbetar flera bitar av samma datasätt parallellt genom att dela uppgifterna.
- Detta ger fördelen med att uppgiften är färdig på kortare tid.
5. Tillgänglighet
- Flera kopior av samma data skickas till flera noder i nätverket.
- I händelse av något fel är alltså andra kopior lätt tillgängliga för bearbetning utan förlust.
6. Skalbarhet
- Hadoop är en mycket skalbar plattform.
- Traditionella RDBMS-system är inte skalbara enligt den ökade datavolymen.
- Med MapReduce kan du köra applikationer från ett stort antal noder med hjälp av terabyte och petabyte med data.
7. Kostnadseffektivt
- Hadoops utskalningsfunktion tillsammans med MapReduce-programmering låter dig lagra och bearbeta data på ett mycket effektivt och prisvärt sätt.
- Kostnadsbesparingar kan vara enorma som siffror på hundratals för terabyte med data.
Slutsats - Hur MapReduce fungerar
Moderna data går mer mot den ostrukturerade typen och enorma, konventionella databehandlingsalternativ som RDBMS är ännu svårare, tidskrävande och dyrare. Men Hadoops MapReduce-programmering är mycket effektiv, säkrare och snabbare vid bearbetning av stora datasätt med även terabyte eller petabyte.
Rekommenderade artiklar
Detta är en guide till hur MapReduce fungerar. Här diskuterar vi faserna i MapReduce-modellen med fördelar och hur fungerar den. Du kan också titta på följande artiklar för att lära dig mer -
- Hadoop ekosystemkomponenter
- MapReduce algoritmer
- Vad är MapReduce i Hadoop?
- MapReduce intervjufrågor