Innehållsförteckning:
Video: Big Data analytics Hadoop with Mapreduce, HIVE, PIG , Zookeeper and Spark Class 1 2024
För att förstå Hadops MapReduces förmåga är det viktigt att skilja mellan MapReduce (algoritmen) och en implementering av MapReduce. Hadoop MapReduce är ett genomförande av algoritmen utvecklad och underhållen av Apache Hadoop-projektet.
Det är bra att tänka på denna implementering som en MapReduce-motor, för det är precis hur det fungerar. Du tillhandahåller inmatning (bränsle), motorn konverterar inmatningen till utdata snabbt och effektivt, och du får svaren du behöver.
Hadoop MapReduce innehåller flera steg, var och en med en viktig uppsättning operationer som hjälper till att nå ditt mål att få svaren du behöver från stora data. Processen börjar med en användarbegäran för att köra ett MapReduce-program och fortsätter tills resultaten skrivs tillbaka till HDFS.
HDFS och MapReduce utför sitt arbete på noder i ett kluster som finns på rader av råvaruservrar. För att förenkla diskussionen visar diagrammet bara två noder.
Få stora data redo
När en klient begär ett MapReduce-program för att köra, är det första steget att lokalisera och läsa in filen med de råa data. Filformatet är fullständigt godtyckligt, men data måste konverteras till något som programmet kan bearbeta. Detta är funktionen av InputFormat och RecordReader. InputFormat bestämmer hur filen ska brytas in i mindre bitar för bearbetning med en funktion som heter InputSplit.
Det tilldelas sedan en RecordReader för att omvandla de råa data för bearbetning av kartan. Flera typer av RecordReaders levereras med Hadoop, som erbjuder ett brett utbud av konverteringsalternativ. Denna funktion är ett av de sätt som Hadoop hanterar det stora utbudet av datatyper som finns i stora dataproblem.
Låt den stora datakartan börja
Dina data finns nu i en form som är acceptabel att kartlägga. För varje ingångspar kallas en distinkt instans av karta för att bearbeta data. Men vad gör det med den bearbetade utmatningen, och hur kan du hålla koll på dem?
Kartan har ytterligare två möjligheter att hantera frågorna. För att kartlägga och minska behovet av att arbeta tillsammans för att bearbeta dina data måste programmet samla utmatningen från de oberoende mapparna och skicka den till reduktionsapparaten. Denna uppgift utförs av en OutputCollector. En Reporter-funktion ger också information som samlas in från kartuppgifterna så att du vet när eller om kartuppgifterna är klara.
Allt detta arbete utförs på flera noder i Hadoop-klustret samtidigt.Du kan ha fall där utdata från vissa kartläggningsprocesser måste ackumuleras innan reduktionsapparaten kan börja. Eller några av de mellanliggande resultaten kan behöva behandlas före reduktion.
Dessutom kan en del av denna utgång vara på en nod som skiljer sig från noden där reducerarna för den specifika utgången kommer att köras. Sammanställningen och blandningen av mellanliggande resultat utförs av en partitioner och en sort. Kartuppgifterna kommer att leverera resultaten till en viss partition som ingångar för att minska uppgifterna.
När alla kartuppgifter är färdiga samlas mellanresultaten i partitionen och en blandning sker, sortering av utmatningen för optimal bearbetning genom minskning.
Minska och kombinera för stora data
För varje utgångspar kallas reducera för att utföra sin uppgift. På liknande sätt att kartlägga, reducerar samlar dess produktion medan alla uppgifter behandlas. Minska kan inte börja förrän all kartläggning är klar. Utgången av reducera är också en nyckel och ett värde. Även om detta är nödvändigt för att minska för att göra sitt arbete, kanske det inte är det effektivaste utmatningsformatet för din ansökan.
Hadoop tillhandahåller en OutputFormat-funktion, och det fungerar väldigt mycket som InputFormat. OutputFormat tar nyckelvärdesparet och organiserar utmatningen för skrivning till HDFS. Den sista uppgiften är att faktiskt skriva data till HDFS. Detta utförs av RecordWriter, och det fungerar på samma sätt som RecordReader utom i omvänd. Det tar OutputFormat-data och skriver det till HDFS i den form som krävs för programmets krav.
Samordningen av alla dessa aktiviteter hanterades i tidigare versioner av Hadoop av en arbetsplanerare. Denna schemaläggare var rudimentär, och eftersom blandningen av jobb förändrats och växte, var det uppenbart att ett annat tillvägagångssätt var nödvändigt. Den primära bristen i den gamla schemaläggaren var bristen på resurshantering. Den senaste versionen av Hadoop har denna nya kapacitet.
Hadoop MapReduce är hjärtat av Hadoop-systemet. Det ger alla funktioner du behöver för att bryta stora data till hanterbara bitar, bearbeta data parallellt på ditt distribuerade kluster och sedan göra data tillgängliga för användarkonsumtion eller ytterligare bearbetning. Och det fungerar allt detta på ett mycket fjädrande, feltolerant sätt. Detta är bara början.