Wat is MapReduce in Hadoop? Grote gegevens Architectuur

Wat is MapReduce in Hadoop?

KaartVerminderen is een softwareframework en programmeermodel dat wordt gebruikt voor het verwerken van grote hoeveelheden gegevens. KaartVerminderen Het programma werkt in twee fasen, namelijk Map en Reduce. Map-taken hebben betrekking op het splitsen en mappen van gegevens.ping Tijdens de Reduce-taken worden de gegevens herschikt en gereduceerd.

Hadoop kan MapReduce-programma's uitvoeren die in verschillende talen zijn geschreven: Java, Robijn, Pythonen C++De programma's van Map Reduce in cloud computing zijn parallel van aard en zijn daarom erg handig voor het uitvoeren van grootschalige data-analyses met behulp van meerdere machines in het cluster.

De invoer voor elke fase is sleutel waarde paren. Bovendien moet elke programmeur twee functies specificeren: kaart functie en functie verminderen.

KaartVerminderen Architectie in Big Data uitgelegd met voorbeeld

Het hele proces doorloopt vier uitvoeringsfasen, namelijk splitsen, in kaart brengen en toewijzen.ping, herschikken en reduceren.

Laten we het in deze MapReduce-tutorial begrijpen met een MapReduce-voorbeeldโ€“

Stel dat u de volgende invoergegevens voor uw MapReduce hebt in Big data-programma

Welcome to Hadoop Class
Hadoop is good
Hadoop is bad
KaartVerminderen Architectuur
KaartVerminderen Architectuur

De uiteindelijke uitvoer van de MapReduce-taak is

douche 1
Klasse 1
goed 1
Hadoop 3
is 2
naar 1
Welkom 1

De gegevens doorlopen de volgende fasen van MapReduce in Big Data

Invoersplitsingen:

Een invoer voor een MapReduce in Big Data-taak wordt verdeeld in stukken van vaste grootte, genaamd ingangssplitsingen Invoersplitsing is een deel van de invoer dat wordt verbruikt door een enkele kaart

Wereldmapping

Dit is de allereerste fase in de uitvoering van het map-reduce-programma. In deze fase worden de gegevens van elke split doorgegeven aan een map.ping functie om uitvoerwaarden te produceren. In ons voorbeeld is dat een taak om een โ€‹โ€‹kaart te maken.ping Fase tel je het aantal keren dat elk woord voorkomt in de inputsplits (meer details over inputsplits vind je hieronder) en maak je een lijst in de volgende vorm:

Schuifelen

Deze fase gebruikt de uitvoer van Map.ping fase. De taak ervan is om de relevante gegevens uit de kaart te consolideren.ping Fase-uitvoer. In ons voorbeeld worden dezelfde woorden samen met hun respectievelijke frequentie gegroepeerd.

Vermindering

In deze fase worden outputwaarden van de Shuffling-fase samengevoegd. Deze fase combineert waarden van de Shuffling-fase en retourneert รฉรฉn outputwaarde. Kortom, deze fase vat de volledige dataset samen.

In ons voorbeeld worden in deze fase de waarden uit de shuffling-fase samengevoegd, dat wil zeggen dat het totale aantal keren dat elk woord voorkomt wordt berekend.

KaartVerminderen Architectuur in detail uitgelegd

  • Voor elke splitsing wordt รฉรฉn kaarttaak gemaakt, die vervolgens de kaartfunctie uitvoert voor elk record in de splitsing.
  • Het is altijd voordelig om meerdere splitsingen te hebben, omdat de tijd die nodig is om een โ€‹โ€‹splitsing te verwerken klein is in vergelijking met de tijd die nodig is voor het verwerken van de gehele invoer. Wanneer de splitsingen kleiner zijn, is het beter om de verwerking in evenwicht te brengen, omdat we de splitsingen parallel verwerken.
  • Het is echter ook niet wenselijk dat de splitsingen te klein zijn. Wanneer de splitsingen te klein zijn, begint de overbelasting van het beheren van de splitsingen en het maken van kaarttaken de totale taakuitvoeringstijd te domineren.
  • Voor de meeste taken is het beter om een โ€‹โ€‹gesplitste grootte te maken die gelijk is aan de grootte van een HDFS-blok (standaard 64 MB).
  • Het uitvoeren van kaarttaken resulteert in het schrijven van uitvoer naar een lokale schijf op het betreffende knooppunt en niet naar HDFS.
  • De reden om te kiezen voor een lokale schijf in plaats van HDFS is om replicatie te voorkomen die plaatsvindt bij HDFS-opslagbewerkingen.
  • Kaartuitvoer is tussentijdse uitvoer die wordt verwerkt door taken te verminderen om de uiteindelijke uitvoer te produceren.
  • Zodra de taak is voltooid, kan de kaartuitvoer worden weggegooid. Het opslaan ervan in HDFS met replicatie wordt dus overdreven.
  • In het geval van een knooppuntstoring, voordat de kaartuitvoer wordt verbruikt door de reduce-taak, voert Hadoop de kaarttaak opnieuw uit op een ander knooppunt en wordt de kaartuitvoer opnieuw gemaakt.
  • Taak verminderen werkt niet op het concept van datalocatie. Een uitvoer van elke kaarttaak wordt naar de verkleintaak gevoerd. De kaartuitvoer wordt overgebracht naar de machine waarop de reduceer-taak wordt uitgevoerd.
  • Op deze machine wordt de uitvoer samengevoegd en vervolgens doorgegeven aan de door de gebruiker gedefinieerde verkleiningsfunctie.
  • In tegenstelling tot de kaartuitvoer wordt de uitvoer verminderd opgeslagen HDFS (de eerste replica wordt opgeslagen op het lokale knooppunt en andere replica's worden opgeslagen op knooppunten buiten het rack). Dus het schrijven van de output vermindert

Hoe werkt MapReduce?

In deze MapReduce-tutorial zullen we nu leren hoe MapReduce werkt

Hadoop verdeelt de taak in taken. Er zijn twee soorten taken:

  1. Taken in kaart brengen (Splits & Kaart)ping)
  2. Verminder taken (Schudden, verkleinen)

Zoals hierboven vermeld.

Het volledige uitvoeringsproces (uitvoering van de Map- en Reduce-taken, beide) wordt bestuurd door twee soorten entiteiten, genaamd a

  1. Jobtracker: Gedraagt โ€‹โ€‹zich als een meester (verantwoordelijk voor de volledige uitvoering van de ingediende opdracht)
  2. Meerdere taken Trackers: Gedraagt โ€‹โ€‹zich als slaven, elk van hen voert de taak uit

Voor elke taak die in het systeem ter uitvoering wordt aangeboden, is er รฉรฉn Jobtracker die op woont Naamknooppunt en er zijn meerdere takentrackers die op wonen datanode.

Hoe Hadoop MapReduce werkt
Hoe Hadoop MapReduce werkt
  • Een taak wordt verdeeld in meerdere taken die vervolgens op meerdere datanodes in een cluster worden uitgevoerd.
  • Het is de verantwoordelijkheid van de functie. tracker om de activiteit te coรถrdineren door taken in te plannen die op verschillende dataknooppunten moeten worden uitgevoerd.
  • De uitvoering van de individuele taak is vervolgens de verantwoordelijkheid van de betreffende taak. tracker, die aanwezig is op elk dataknooppunt dat een deel van de taak uitvoert.
  • Taak tracDe verantwoordelijkheid van Ker is het versturen van het voortgangsrapport naar de medewerker. tracKer.
  • Daarnaast is er de taak tracker verzendt periodiek 'hartslag' signaal aan de Jobtracker om hem op de hoogte te stellen van de huidige status van het systeem.
  • Dus werk tracker houdt track van de algehele voortgang van elke taak. In geval van taakfalen, wordt de taak tracker kan het opnieuw inplannen voor een andere taak. tracKer.

Vat dit bericht samen met: