Video: De vuelta al barrio - 11/12/2019 - Cap 531 - 4/4 2024
In de kern is MapReduce een programmeermodel voor het verwerken van gegevenssets die op een gedistribueerde manier worden opgeslagen in de slave-knooppunten van een Hadoop-cluster. Het sleutelbegrip hier is verdelen en heersen. Concreet wil je een grote dataset in veel kleinere stukken breken en ze parallel met hetzelfde algoritme verwerken.
Met het Hadoop Distributed File System (HDFS) zijn de bestanden al verdeeld in hapklare stukken. MapReduce is wat je gebruikt om alle stukjes te verwerken.
MapReduce-applicaties hebben meerdere fasen, zoals ze in deze lijst worden beschreven:
-
Bepaal de exacte datasets die vanuit de datablokken moeten worden verwerkt. Dit houdt in dat wordt berekend waar de te verwerken gegevens zich binnen de gegevensblokken bevinden.
-
Voer het opgegeven algoritme uit voor elke record in de gegevensset totdat alle records zijn verwerkt.
Het individuele exemplaar van de toepassing dat wordt uitgevoerd met een gegevensblok in een gegevensset, wordt een mappertaak genoemd. (Dit is het kaartgedeelte van MapReduce.)
-
Lokaal een tussentijdse reductie van de uitvoer van elke mapper uitvoeren.
(De outputs worden met andere woorden provisorisch gecombineerd.) Deze fase is optioneel omdat in sommige veelvoorkomende gevallen dit niet wenselijk is.
-
Groepeer de toepasselijke partities met gegevens van de resultaatsets van elke mapper op basis van partitioneringsvereisten.
-
Zet de resultatensets van de mappers neer in één resultaatset: het gedeelte Reduceer MapReduce.
Een afzonderlijk exemplaar van de toepassing dat wordt uitgevoerd met de uitvoergegevens van de mapper is een verlooptaak . (Hoe vreemd het ook mag lijken, aangezien "Reduce" deel uitmaakt van de MapReduce-naam, deze fase kan optioneel zijn, toepassingen zonder een reducer staan bekend als alleen-toewijzingsopdrachten , wat handig kan zijn als er geen moet de resultatensets combineren met de toewijzingstaken.)