Map Side Join Vs. Bli med

Dette innlegget diskuterer Hadoop Map side join Vs. bli med. Lær også hva som er kartreduksjon, sammenføyningstabell, sammenføyningsside, fordelene ved å bruke kartfagforbindelse i Hive

I denne bloggen skal vi diskutere om Kortsidesammenføyning og dets fordeler i forhold til den normale sammenføyningsoperasjonen i Hive .Dette er et viktig konsept som du må lære å implementere .Men før vi vet om dette, bør vi først forstå begrepet 'Bli med' og hva som skjer internt når vi utfører sammenføyningen Hive .

Bli med er en klausul som kombinerer postene til to tabeller (eller datasett).
Anta at vi har to tabeller A og B. Når vi utfører sammenføyningsoperasjon på dem, vil den returnere postene som er kombinasjonen av alle kolonnene i A og B.



La oss nå forstå funksjonaliteten til normal sammenføyning med et eksempel ..

Hver gang vi bruker deltakelse, vil jobben bli tildelt en kartreduksjonsoppgave som består av to trinn- a ‘Kartetappe 'Og en' Reduser scenen '. En kartleggers jobb under Map Stage er å 'lese' dataene fra sammenføyningstabeller og til 'komme tilbake' de 'Bli med nøkkel' og 'Bli med verdi' par i en mellomfil. Videre, i tilfeldig rekkefølge, blir denne mellomfilen deretter sortert og slått sammen. Reduseringens jobb under reduseringsfasen er å ta dette sorterte resultatet som input og fullføre oppgaven med å bli med.

  • Map-side Join ligner på en join, men hele oppgaven utføres av kartleggeren alene.

  • Map-side Join vil for det meste være egnet for små bord for å optimalisere oppgaven.

Hvordan vil kartsiden bli optimalisert oppgaven?

Anta at vi har to bord hvorav ett av dem er et lite bord. Når vi sender inn en kartreduksjonsoppgave, vil en Map Reduce lokal oppgave bli opprettet før den opprinnelige join Map Reduce-oppgaven, som vil lese data fra den lille tabellen fra HDFS og lagre den i en hash-tabell i minnet. Etter lesing serierer den hash-tabellen i minnet til en hash-tabellfil.

I neste trinn, når den opprinnelige join Map Reduce-oppgaven kjører, flytter den dataene i hash-tabellfilen til Hadoop-distribuerte cache, som fyller disse filene til hver kartleggers lokale disk. Så alle kartleggere kan laste denne vedvarende hash-tabellfilen tilbake i minnet og gjøre sammenføyningsarbeidet som før. Utførelsesflyten for den optimaliserte kartsammenføyningen er vist i figuren nedenfor. Etter optimalisering må det lille bordet leses bare én gang. Også hvis flere kartleggere kjører på samme maskin, trenger den distribuerte cachen bare å skyve en kopi av hash-tabellfilen til denne maskinen.

Fordeler med å bruke kortsidesammenføyning:

  • Kortsidesammenføyning hjelper til med å minimere kostnadene som påløper for sortering og sammenslåing i tilfeldig rekkefølge og redusere trinn.
  • Kortsidesammenføyning hjelper også til å forbedre oppgavens ytelse ved å redusere tiden for å fullføre oppgaven.

Ulemper med Map-side join:

  • Kortsidesammenføyning er bare tilstrekkelig når en av tabellene du utfører sammenføyning på kartsiden, er liten nok til å passe inn i minnet. Derfor er det ikke egnet å utføre kortsideforbindelse på tabellene som er enorme data i begge.

Enkelt eksempel for Map Reduce Joins:

La oss lage to tabeller:

hvordan ta et skjermbilde i selen
  • Emp : inneholder detaljer om en ansatt, for eksempel ansattes navn, ansattes ID og avdelingen hun tilhører.

  • Gjeld: inneholder detaljene som avdelingsnavnet, avdelings-ID og så videre.

Opprett to inndatafiler som vist i det følgende bildet for å laste inn dataene i de opprettede tabellene.

ansatt.txt

java hvordan konvertere dobbelt til int

avd.txt

La oss nå laste inn dataene i tabellene.

La oss utføre Kart-side Bli med på de to tabellene for å trekke ut listen over avdelinger der hver ansatt jobber.

Her, den andre tabell avd er et lite bord. Husk at alltid antall avdelinger vil være mindre enn antall ansatte i en organisasjon.

La oss nå utføre den samme oppgaven ved hjelp av normal Reduce-side-sammenføyning.

Mens du utfører begge sammenføyningene, kan du finne de to forskjellene:

  • Kartreduserende sammenføyning har fullført jobben på kortere tid sammenlignet med tiden det tar med normal påmelding.

  • Map-redusere sammenføyning har fullført jobben sin uten hjelp fra noen reduksjonsmiddel, mens normal deltakelse utførte denne jobben ved hjelp av en reduseringsanordning.

Derfor, Map-side Bli med er det beste alternativet når et av bordene er lite nok til å passe i minnet for å fullføre jobben på kort tid.

I Sanntidsmiljø , vil du ha datasett med enorme mengder data. Så å utføre analyse og hente data vil være tidkrevende hvis et av datasettene er av mindre størrelse. I slike tilfeller Kortsidesammenføyning vil bidra til å fullføre jobben på kortere tid.

Det har aldri vært en bedre tid å mestre Hadoop! Kom i gang nå med det spesiallagde Big Data- og Hadoop-kurset av Edureka.

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

Relaterte innlegg:

7 måter Big Data Training kan endre organisasjonen din

js får lengden på matrisen