Map Side Join Vs. Ansluta sig



Det här inlägget diskuterar Hadoop Map-sida-anslutning Vs. Ansluta sig. Lär dig också vad som är kartreducering, kopplingstabell, kopplingssida, fördelar med att använda kartkortssammanträde i Hive

I den här bloggen ska vi diskutera om Kortsidans sammanfogning och dess fördelar jämfört med den normala anslutningsoperationen Bikupa .Detta är ett viktigt koncept som du måste lära dig att implementera din .Men innan vi vet om detta bör vi först förstå begreppet 'Ansluta sig' och vad som händer internt när vi utför anslutningen Bikupa .

Ansluta sig är en klausul som kombinerar posterna i två tabeller (eller datasatser).
Antag att vi har två tabeller A och B. När vi utför en kopplingsoperation på dem, kommer den att returnera posterna som är kombinationen av alla kolumner av A och B.





Låt oss nu förstå funktionaliteten hos normal anslutning med ett exempel ..

När vi tillämpar anslutningsoperation tilldelas jobbet en Map Reduce-uppgift som består av två steg - a ”Kartsteg 'Och ​​en' Minska scenen ”. En kartläggares jobb under Map Stage är att 'läsa' data från kopplingstabeller och till 'lämna tillbaka' de 'Gå med nyckel' och 'Gå med i värde' para i en mellanfil. Vidare, i blandningssteget, sorteras sedan denna mellanfil och slås samman. Reduktionsarbetet under reduceringsstadiet är att ta detta sorterade resultat som input och slutföra uppgiften att gå med.



  • Map-sida-anslutning liknar en koppling men hela uppgiften kommer att utföras av kartläggaren ensam.

  • Map-side-kopplingen passar mest för små bord för att optimera uppgiften.



Hur kommer föreningen på kartsidan att optimera uppgiften?

Antag att vi har två bord varav ett av dem är ett litet bord. När vi skickar en kartreduceringsuppgift skapas en lokal uppgift för kartreducering innan den ursprungliga anslutningsuppgiften för kartreducering kommer att läsa data från den lilla tabellen från HDFS och lagra den i en hashtabell i minnet. Efter läsning serialiserar den hash-tabellen i minnet till en hash-tabellfil.

I nästa steg, när den ursprungliga anslutningsuppgiften Map Reduce körs, flyttas den data i hash-tabellfilen till Hadoop-distribuerade cache, som fyller dessa filer till varje mappares lokala disk. Så alla kartläggare kan ladda den här ihållande hash-tabellfilen tillbaka i minnet och göra föreningsarbetet som tidigare. Körningsflödet för den optimerade kartföreningen visas i figuren nedan. Efter optimering behöver det lilla bordet läsas bara en gång. Även om flera mappar körs på samma maskin behöver den distribuerade cachen bara skicka en kopia av hash-tabellfilen till den här maskinen.

Fördelar med att använda kartsidans sammanfogning:

  • Map-side-koppling hjälper till att minimera kostnaden för sortering och sammanslagning i blanda och minska steg.
  • Map-side-koppling hjälper också till att förbättra uppgifternas prestanda genom att minska tiden för att slutföra uppgiften.

Nackdelar med sammanfogning på kartsidan:

  • Kortsidans sammanfogning är tillräcklig endast när en av tabellerna som du utför kopplingsåtgärder på kartan är tillräckligt liten för att passa in i minnet. Därför är det inte lämpligt att utföra sammanfogning på kartsidan på tabellerna som är enorma data i dem båda.

Enkelt exempel för Map Reduce Joins:

Låt oss skapa två tabeller:

  • Emp : innehåller information om en anställd som anställds namn, anställds ID och den avdelning hon tillhör.

  • Avdelning: innehåller detaljer som avdelningens namn, avdelnings-ID och så vidare.

Skapa två inmatningsfiler som visas i följande bild för att ladda data i de skapade tabellerna.

anställd.txt

avd.txt

Fibonacci c ++ rekursiv

Låt oss nu ladda in data i tabellerna.

Låt oss utföra På kartsidan Ansluta sig på de två tabellerna för att extrahera listan över avdelningar där varje anställd arbetar.

Här, den andra tabell avd är ett litet bord. Kom ihåg att alltid avdelningen kommer att vara mindre än antalet anställda i en organisation.

Låt oss nu utföra samma uppgift med hjälp av en normal Reduce-side-anslutning.

När du kör båda föreningarna kan du hitta de två skillnaderna:

  • Map-reducera anslutning har slutfört jobbet på kortare tid jämfört med den tid det tar vid normal anslutning.

  • Map-reducera anslutning har slutfört sitt jobb utan hjälp av någon reducerare medan normal koppling utfört detta jobb med hjälp av en reducerare.

Därmed, Gå med på kartsidan är det bästa alternativet när ett av borden är tillräckligt liten för att passa i minnet för att slutföra jobbet på kort tid.

I Realtidsmiljö , kommer du att ha datamängder med enorm mängd data. Så det är tidskrävande att utföra analys och hämta data om en av datamängderna är av mindre storlek. I sådana fall Gå med på kartsidan hjälper till att slutföra jobbet på kortare tid.

Det har aldrig funnits en bättre tid att bemästra Hadoop! Kom igång nu med den speciellt kurerade Big Data- och Hadoop-kursen av Edureka.

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

Relaterade inlägg:

7 sätt Big Data Training kan förändra din organisation