Map Side Join vs. Aderire

Questo post discute di Hadoop Map side join vs. aderire. Scopri anche cos'è la riduzione della mappa, l'unione di tabelle, l'unione laterale, i vantaggi dell'utilizzo dell'operazione di unione lato mappa in Hive

In questo blog, discuteremo di Mappa side join e i suoi vantaggi rispetto alla normale operazione di join in Alveare .Questo è un concetto importante che dovrai imparare per implementare il tuo .Ma prima di saperlo, dovremmo prima capire il concetto di 'Aderire' e cosa succede internamente quando eseguiamo il join Alveare .

Aderire è una clausola che combina i record di due tabelle (o Data-Set).
Supponiamo di avere due tabelle A e B.Quando eseguiamo un'operazione di join su di esse, restituirà i record che sono la combinazione di tutte le colonne di A e B.





Adesso capiamo la funzionalità del join normale con un esempio ..

Ogni volta che applichiamo un'operazione di unione, il lavoro verrà assegnato a un'attività Riduci mappa che consiste di due fasi: a 'Fase della mappa 'E un' Riduci la fase '. Il compito di un mappatore durante la fase della mappa è quello di 'leggere' i dati dalle tabelle di join e in 'ritorno' il 'Chiave di accesso' e 'Valore di partecipazione' accoppiare in un file intermedio. Inoltre, nella fase di riproduzione casuale, questo file intermedio viene quindi ordinato e unito. Il compito del riduttore durante la fase di riduzione è di prendere questo risultato ordinato come input e completare l'attività di unione.



  • Il join sul lato mappa è simile a un join ma tutte le attività verranno eseguite dal solo mappatore.

  • Il join lato mappa sarà adatto principalmente a piccoli tavoli per ottimizzare l'attività.



In che modo l'unione lato mappa ottimizzerà l'attività?

Supponiamo di avere due tavoli di cui uno è un tavolino. Quando inviamo un'attività di riduzione della mappa, verrà creata un'attività locale di riduzione della mappa prima dell'attività di riduzione della mappa di join originale che leggerà i dati della piccola tabella da HDFS e li memorizzerà in una tabella hash in memoria. Dopo la lettura, serializza la tabella hash in memoria in un file di tabella hash.

Nella fase successiva, quando l'attività di join originale di riduzione della mappa è in esecuzione, sposta i dati nel file della tabella hash nella cache distribuita di Hadoop, che popola questi file nel disco locale di ogni mappatore. Quindi tutti i mappatori possono caricare di nuovo questo file di tabella hash persistente nella memoria e fare il join come prima. Il flusso di esecuzione del join della mappa ottimizzato è mostrato nella figura seguente. Dopo l'ottimizzazione, il tavolino deve essere letto solo una volta. Inoltre, se più mappatori sono in esecuzione sulla stessa macchina, la cache distribuita deve solo inviare una copia del file della tabella hash a questa macchina.

Vantaggi dell'utilizzo di map side join:

  • L'unione sul lato mappa aiuta a ridurre al minimo il costo sostenuto per l'ordinamento e l'unione in mescolare e ridurre fasi.
  • L'unione sul lato mappa aiuta anche a migliorare le prestazioni dell'attività riducendo il tempo necessario per completare l'attività.

Svantaggi del join lato mappa:

  • Il join sul lato della mappa è adeguato solo quando una delle tabelle su cui si esegue l'operazione di join sul lato della mappa è abbastanza piccolo da entrare nella memoria. Quindi non è adatto per eseguire l'unione lato mappa sulle tabelle che sono dati enormi in entrambe.

Semplice esempio per i join di riduzione delle mappe:

Creiamo due tabelle:

  • Emp : contiene i dettagli di un dipendente come il nome del dipendente, l'ID dipendente e il dipartimento a cui appartiene.

cifre inverse di un intero pitone
  • Dipartimento: contiene dettagli come il nome del dipartimento, l'ID del dipartimento e così via.

Creare due file di input come mostrato nell'immagine seguente per caricare i dati nelle tabelle create.

dipendente.txt

dept.txt

come fare un avviso in javascript

Ora, carichiamo i dati nelle tabelle.

Cerchiamo di eseguire il Lato mappa Aderire sulle due tabelle per estrarre l'elenco dei reparti in cui opera ciascun dipendente.

Qui, il secondo tavolo dept è un tavolino. Ricorda, il numero di dipartimenti sarà sempre inferiore al numero di dipendenti in un'organizzazione.

Ora eseguiamo la stessa operazione con l'aiuto del normale Reduce-side join.

Durante l'esecuzione di entrambi i join, puoi trovare le due differenze:

  • Il join di riduzione della mappa ha completato il lavoro in meno tempo rispetto al tempo impiegato nel join normale.

  • Il join map-reduce ha completato il suo lavoro senza l'aiuto di alcun riduttore mentre il join normale ha eseguito questo lavoro con l'aiuto di un riduttore.

Quindi, Join lato mappa è la soluzione migliore quando uno dei tavoli è abbastanza piccolo da entrare nella memoria per completare il lavoro in un breve lasso di tempo.

Nel Ambiente in tempo reale , avrai set di dati con un'enorme quantità di dati. Pertanto, l'esecuzione dell'analisi e il recupero dei dati richiederà tempo se uno dei set di dati è di dimensioni inferiori. In tali casi Unione lato mappa aiuterà a completare il lavoro in meno tempo.

creare un pacchetto in java

Non c'è mai stato momento migliore per padroneggiare Hadoop! Inizia ora con il corso Big Data e Hadoop di Edureka, appositamente curato.

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

Post correlati:

7 modi in cui la formazione sui Big Data può cambiare la tua organizzazione