Map Side Join Vs. Doe mee



Dit bericht bespreekt Hadoop Map side join Vs. toetreden. Leer ook wat map verkleinen, samenvoegen-tabel, samenvoegen-kant is, voordelen van het gebruik van kaart-kant samenvoegen in Hive

In deze blog zullen we bespreken Kaartzijde toetreden en zijn voordelen ten opzichte van de normale verbindingsbewerking in Bijenkorf .Dit is een belangrijk concept dat u moet leren om uw .Maar voordat we hiervan op de hoogte zijn, moeten we eerst het concept van begrijpen ‘Meedoen’ en wat er intern gebeurt als we de join-in uitvoeren Bijenkorf .

Doe mee is een clausule die de records van twee tabellen (of Data-Sets) combineert.
Stel dat we twee tabellen A en B hebben. Wanneer we een samenvoegbewerking uitvoeren, retourneert het de records die de combinatie zijn van alle kolommen van A en B.





Laten we nu de functionaliteit van normale join begrijpen met een voorbeeld.

hoe alert te gebruiken in javascript

Telkens wanneer we een join-bewerking toepassen, wordt de taak toegewezen aan een Map Reduce-taak die uit twee fasen bestaat: a ‘Kaartstadium ' en een ' Stadium verkleinen ’. De taak van een mapper tijdens Map Stage is om 'lezen' de gegevens van samenvoegtabellen en naar 'Terug' de ‘Join-sleutel’ en ‘Join value’ paar in een tussenbestand. Verder wordt dit tussenbestand in de shuffle-fase gesorteerd en samengevoegd. De taak van de reducer tijdens de verkleiningsfase is om dit gesorteerde resultaat als invoer te nemen en de taak van samenvoegen te voltooien.



  • Join op de kaart is vergelijkbaar met een join, maar alle taken worden alleen door de mapper uitgevoerd.

  • De Map-side Join is vooral geschikt voor kleine tafels om de taak te optimaliseren.



Hoe optimaliseert de samenkomst aan de kaartzijde de taak?

Stel dat we twee tafels hebben, waarvan er één een kleine tafel is. Wanneer we een map-verkleintaak indienen, wordt een lokale mapverminderingstaak gemaakt vóór de oorspronkelijke kaartverminderingstaak die de gegevens van de kleine tabel uit HDFS leest en opslaat in een hashtabel in het geheugen. Na het lezen serialiseert het de hashtabel in het geheugen naar een hashtabelbestand.

In de volgende fase wanneer de oorspronkelijke Map Reduce-taak wordt uitgevoerd, worden de gegevens in het hashtabelbestand naar de Hadoop-gedistribueerde cache verplaatst, die deze bestanden naar de lokale schijf van elke mapper vult. Dus alle mappers kunnen dit persistente hashtabelbestand terug in het geheugen laden en het join-werk doen zoals voorheen. De uitvoeringsstroom van de geoptimaliseerde kaartverbinding wordt weergegeven in de onderstaande afbeelding. Na optimalisatie hoeft de kleine tabel slechts één keer te worden gelezen. Ook als meerdere mappers op dezelfde machine draaien, hoeft de gedistribueerde cache slechts één kopie van het hashtabelbestand naar deze machine te pushen.

Voordelen van het gebruik van Map Side Join:

  • Map-side join helpt bij het minimaliseren van de kosten die worden gemaakt voor het sorteren en samenvoegen in het shuffle en verminderen stadia.
  • Map-side join helpt ook bij het verbeteren van de uitvoering van de taak door de tijd die nodig is om de taak te voltooien, te verkorten.

Nadelen van samenvoegen aan de kaartzijde:

  • Join aan de kaartzijde is alleen voldoende als een van de tabellen waarop u de join-bewerking aan de kaartzijde uitvoert, klein genoeg is om in het geheugen te passen. Daarom is het niet geschikt om map-side join uit te voeren op de tabellen, die in beide enorme gegevens bevatten.

Eenvoudig voorbeeld voor Map Reduce Joins:

Laten we twee tabellen maken:

  • Emp : bevat gegevens van een werknemer, zoals de naam van de werknemer, de werknemer-ID en de afdeling waartoe ze behoort.

  • Afdeling: bevat de details zoals de naam van de afdeling, afdelings-ID enzovoort.

Maak twee invoerbestanden zoals weergegeven in de volgende afbeelding om de gegevens in de gemaakte tabellen te laden.

werknemer.txt

afd.txt

Laten we nu de gegevens in de tabellen laden.

Laten we de Kaartzijde Doe mee op de twee tafels om de lijst met afdelingen te extraheren waarin elke werknemer werkt.

Hier de tweede tafel afd is een kleine tafel. Onthoud dat het aantal afdelingen altijd kleiner zal zijn dan het aantal werknemers in een organisatie.

Laten we nu dezelfde taak uitvoeren met behulp van de normale samenvoeging aan de zijkant.

Terwijl u beide joins uitvoert, kunt u de twee verschillen vinden:

  • Map-reduce join heeft de klus in minder tijd voltooid in vergelijking met de tijd die nodig is bij een normale join.

  • Map-reduce join heeft zijn taak voltooid zonder de hulp van een verloopstuk, terwijl een normale join deze taak heeft uitgevoerd met behulp van één verloopstuk.

Vandaar, Map-side Join is uw beste keuze als een van de tafels klein genoeg is om in het geheugen te passen en de klus in korte tijd te voltooien.

In Real-time omgeving heb je datasets met een enorme hoeveelheid data. Het uitvoeren van analyses en het ophalen van de gegevens zal dus tijdrovend zijn als een van de datasets kleiner is. In dergelijke gevallen Map-side join zal helpen om de klus in minder tijd te voltooien.

Er is nog nooit een betere tijd geweest om Hadoop onder de knie te krijgen! Ga nu aan de slag met de speciaal samengestelde Big Data en Hadoop-cursus van Edureka.

Referenties:
https://www.facebook.com/notes/facebook-engineering/join-optimization-in-apache-hive/470667928919

Gerelateerde berichten:

7 manieren waarop big data-training uw organisatie kan veranderen

converteer dubbel naar geheel getal in java