Inleiding tot MapReduce
MapReduce is een computercomponent van het Hadoop Framework voor het eenvoudig schrijven van toepassingen die grote hoeveelheden gegevens parallel verwerken en die op een betrouwbare en fouttolerante manier worden opgeslagen op grote clusters van goedkope basismachines. In dit onderwerp gaan we meer te weten over hoe MapReduce werkt?
MapReduce kan gedistribueerde en parallelle berekeningen uitvoeren met grote gegevenssets over een groot aantal knooppunten. Een MapReduce-taak splitst meestal de invoergegevenssets en verwerkt ze vervolgens onafhankelijk door de kaarttaken op een volledig parallelle manier. De uitvoer wordt vervolgens gesorteerd en ingevoerd om taken te verminderen. Zowel taakinvoer als uitvoer worden opgeslagen in bestandssystemen. Taken worden gepland en gecontroleerd door het framework.
Hoe werkt MapReduce?
MapReduce-architectuur bevat twee kerncomponenten als Daemon-services die verantwoordelijk zijn voor het uitvoeren van mapper- en reducertaken, monitoring en het opnieuw uitvoeren van de taken bij mislukking. In Hadoop 2 en hoger zijn Resource Manager en Node Manager de daemon-services. Wanneer de jobclient een MapReduce-job indient, komen deze daemons in actie. Ze zijn ook verantwoordelijk voor parallelle verwerking en fouttolerantiekenmerken van MapReduce-taken.
In Hadoop 2 en hoger worden resourcebeheer en functies voor taakplanning of monitoring gescheiden door YARN (Yet Another Resource Negotiator) als verschillende daemons. In vergelijking met Hadoop 1 met Job Tracker en Task Tracker bevat Hadoop 2 een globale Resource Manager (RM) en Application Masters (AM) voor elke applicatie.
- Job Client verzendt de job naar de Resource Manager.
- De planner van YARN Resource Manager is verantwoordelijk voor de coördinatie van de brontoewijzing van het cluster tussen de actieve toepassingen.
- De YARN Node Manager wordt op elk knooppunt uitgevoerd en voert resourcebeheer op knooppuntniveau uit, in coördinatie met de Resource manager. Het start en bewaakt de rekencontainers op de machine in het cluster.
- Application Master helpt de bronnen van Resource Manager en gebruikt Node Manager om MapReduce-taken uit te voeren en te coördineren.
- HDFS wordt meestal gebruikt om taakbestanden met andere entiteiten te delen.
Fasen van het MapReduce-model
MapReduce-model heeft drie hoofd- en één optionele fase:
1. Mapper
- Het is de eerste fase van MapReduce-programmering en bevat de coderingslogica van de mapper-functie.
- De voorwaardelijke logica wordt toegepast op 'n' aantal gegevensblokken verspreid over verschillende gegevensknooppunten.
- De Mapper-functie accepteert sleutel / waarde-paren als invoer als (k, v), waarbij de sleutel het offset-adres van elk record vertegenwoordigt en de waarde de volledige recordinhoud vertegenwoordigt.
- De uitvoer van de Mapper-fase heeft ook de sleutel / waarde-indeling als (k ', v').
2. Shuffle en sorteren
- De uitvoer van verschillende mappers (k ', v') gaat vervolgens in de fase Shuffle en Sort.
- Alle dubbele waarden worden verwijderd en verschillende waarden worden gegroepeerd op basis van vergelijkbare sleutels.
- De uitvoer van de fase Shuffle en Sort zal opnieuw sleutel / waarde-paren zijn als sleutel en matrix van waarden (k, v ()).
3. Verloopstuk
- De uitgang van de fase Shuffle en Sort (k, v ()) is de ingang van de fase Reducer.
- In deze fase wordt de logica van de reductiefunctie uitgevoerd en worden alle waarden geaggregeerd tegen de bijbehorende toetsen.
- Reducer consolideert de output van verschillende mappers en berekent de uiteindelijke taakoutput.
- De uiteindelijke uitvoer wordt vervolgens in een enkel bestand in een uitvoermap van HDFS geschreven.
4. Combinator
- Het is een optionele fase in het MapReduce-model.
- De combinatiefase wordt gebruikt om de prestaties van MapReduce-taken te optimaliseren.
- In deze fase worden verschillende uitgangen van de mappers lokaal gereduceerd op knooppuntniveau.
- Als bijvoorbeeld verschillende mapper-uitgangen (k, v) afkomstig van een enkel knooppunt duplicaten bevatten, worden deze gecombineerd, dat wil zeggen lokaal gereduceerd als een enkele (k, v ()) -uitvoer.
- In deze fase werkt de Shuffle- en Sort-fase nog sneller, waardoor extra prestaties in MapReduce-taken mogelijk zijn.
Al deze fasen in een MapReduce-taak kunnen als volgt worden weergegeven:
MapReduce-logica om het aantal woorden op een reeks woorden te vinden, kan bijvoorbeeld als volgt worden weergegeven:
fruits_array = (appel, sinaasappel, appel, guave, druiven, sinaasappel, appel)
- Mapperfase tokeniseert de invoerarray van woorden in 'n' aantal woorden om de uitvoer te geven als (k, v). Overweeg bijvoorbeeld 'appel'. Mapper-uitvoer is (appel, 1), (appel, 1), (appel, 1).
- Shuffle en Sort accepteren de uitvoer van de mapper (k, v) en groeperen alle waarden volgens hun toetsen als (k, v ()). dat wil zeggen (appel, (1, 1, 1)).
- De Reducer-fase accepteert Shuffle en sorteer uitvoer en geeft de som van de waarden (apple, (1 + 1 + 1)), die overeenkomen met hun toetsen. dat wil zeggen (appel, 3).
Speculatieve uitvoering van MapReduce Work
De snelheid van MapReduce wordt gedomineerd door de langzaamste taak. Dus, om de snelheid te verhogen, werkt een nieuwe mapper tegelijkertijd aan dezelfde dataset. De taak die als eerste wordt voltooid, wordt beschouwd als de uiteindelijke uitvoer en de andere wordt gedood. Het is een optimalisatietechniek.
Voordelen van MapReduce
Hier worden de voordelen van MapReduce hieronder vermeld
1. Fouttolerantie
- Als er tijdens een taak voor het verminderen van kaarten tijdens een taak met een paar gegevensblokken een storing optreedt, wordt de storing verholpen door een architectuur.
- Het beschouwt gerepliceerde kopieën van de blokken in alternatieve machines voor verdere verwerking.
2. Veerkracht
- Elk knooppunt werkt periodiek zijn status bij naar het hoofdknooppunt.
- Als een slavenknooppunt zijn melding niet verzendt, wijst het hoofdknooppunt de huidige taak van dat slavenknooppunt opnieuw toe aan andere beschikbare knooppunten in het cluster.
3. Snel
- Gegevensverwerking gaat snel omdat MapReduce HDFS als opslagsysteem gebruikt.
- MapReduce heeft enkele minuten nodig om terabytes aan ongestructureerde grote hoeveelheden gegevens te verwerken.
4. Parallelle verwerking
- MapReduce-taken verwerken meerdere delen van dezelfde datasets parallel door de taken te verdelen.
- Dit geeft het voordeel van het voltooien van taken in minder tijd.
5. Beschikbaarheid
- Meerdere replica's van dezelfde gegevens worden naar verschillende knooppunten in het netwerk verzonden.
- Zo zijn in geval van een storing andere exemplaren zonder verlies beschikbaar voor verwerking.
6. Schaalbaarheid
- Hadoop is een zeer schaalbaar platform.
- Traditionele RDBMS-systemen zijn niet schaalbaar volgens de toename van het datavolume.
- Met MapReduce kunt u applicaties uitvoeren vanaf een groot aantal knooppunten, met terabytes en petabytes aan gegevens.
7. Rendabel
- Met de schaaluitbreidingsfunctie van Hadoop en de programmering van MapReduce kunt u gegevens op een zeer effectieve en betaalbare manier opslaan en verwerken.
- Kostenbesparingen kunnen enorm zijn als cijfers van honderden voor terabytes aan gegevens.
Conclusie - Hoe MapReduce werkt
Moderne gegevens evolueren meer naar het ongestructureerde type en een enorme, conventionele optie voor gegevensverwerking zoals RDBMS is nog moeilijker, tijdrovend en duur. Maar de MapReduce-programmering van Hadoop is veel effectiever, veiliger en sneller bij het verwerken van grote datasets van zelfs terabytes of petabytes.
Aanbevolen artikelen
Dit is een gids voor hoe MapReduce werkt. Hier bespreken we de fasen van het MapReduce-model met voordelen en hoe werkt het. U kunt ook de volgende artikelen bekijken voor meer informatie -
- Hadoop ecosysteemcomponenten
- Map Algoritmen verkleinen
- Wat is MapReduce in Hadoop?
- Vragen tijdens solliciteren bij MapReduce