Πλευρά χαρτών Γίνετε μέλος Vs. Συμμετοχή

Αυτή η ανάρτηση ασχολείται με το Hadoop Map side join Vs. Συμμετοχή. Μάθετε επίσης τι είναι η μείωση χαρτών, ο πίνακας συμμετοχής, η ένωση, τα πλεονεκτήματα της χρήσης της λειτουργίας σύνδεσης στην πλευρά του χάρτη στην κυψέλη

Σε αυτό το blog, θα συζητήσουμε για Συμμετοχή στην πλευρά του χάρτη και τα πλεονεκτήματά του έναντι της κανονικής λειτουργίας σύνδεσης Κυψέλη .Αυτή είναι μια σημαντική ιδέα που θα πρέπει να μάθετε να εφαρμόζετε τη δική σας .Αλλά πριν μάθουμε για αυτό, πρέπει πρώτα να κατανοήσουμε την έννοια του 'Συμμετοχή' και τι συμβαίνει εσωτερικά όταν κάνουμε το join Κυψέλη .



ssis φροντιστήριο βήμα προς βήμα

Συμμετοχή είναι μια ρήτρα που συνδυάζει τις εγγραφές δύο πινάκων (ή σετ δεδομένων).
Ας υποθέσουμε ότι έχουμε δύο πίνακες Α και Β. Όταν εκτελούμε τη λειτουργία συμμετοχής σε αυτούς, θα επιστρέψει τις εγγραφές που είναι ο συνδυασμός όλων των στηλών των Α και Β.



Τώρα ας κατανοήσουμε τη λειτουργικότητα της κανονικής σύνδεσης με ένα παράδειγμα ..

Κάθε φορά που εφαρμόζουμε λειτουργία εγγραφής, η εργασία θα ανατεθεί σε μια εργασία μείωσης χάρτη που αποτελείται από δύο στάδια - α «Στάδιο χάρτη ' και ένα ' Μειώστε το στάδιο '. Η δουλειά ενός χαρτογράφου κατά τη διάρκεια του Map Stage είναι να 'ανάγνωση' τα δεδομένα από πίνακες σύνδεσης και σε 'ΕΠΙΣΤΡΟΦΗ' ο «Κλειδί συμμετοχής» και «Τιμή συμμετοχής» σύζευξη σε ένα ενδιάμεσο αρχείο. Περαιτέρω, στο στάδιο ανακατέματος, αυτό το ενδιάμεσο αρχείο ταξινομείται και συγχωνεύεται. Η δουλειά του μειωτήρα κατά τη διάρκεια του σταδίου μείωσης είναι να πάρει αυτό το ταξινομημένο αποτέλεσμα ως εισαγωγή και να ολοκληρώσει το έργο της συμμετοχής.



  • Το Join side-side είναι παρόμοιο με το join, αλλά όλη η εργασία θα εκτελεστεί μόνο από τον mapper.

  • Το Join-side Join θα είναι ως επί το πλείστον κατάλληλο για μικρά τραπέζια για τη βελτιστοποίηση της εργασίας.



Πώς θα βελτιστοποιηθεί η εργασία από την πλευρά του χάρτη;

Ας υποθέσουμε ότι έχουμε δύο τραπέζια από τα οποία ένα από αυτά είναι ένα μικρό τραπέζι. Όταν υποβάλλουμε μια εργασία μείωσης χάρτη, μια τοπική εργασία Map Reduce θα δημιουργηθεί πριν από την αρχική εγγραφή στην εργασία Map Reduce, η οποία θα διαβάσει δεδομένα του μικρού πίνακα από το HDFS και θα το αποθηκεύσει σε έναν πίνακα κατακερματισμού στη μνήμη. Μετά την ανάγνωση, σειριοποιεί τον πίνακα κατακερματισμού στη μνήμη σε ένα αρχείο πίνακα κατακερματισμού.

Στο επόμενο στάδιο, όταν εκτελείται η αρχική εργασία Map Reduce, μετακινεί τα δεδομένα στο αρχείο κατακερματισμού στο κατανεμημένο cache Hadoop, το οποίο συμπληρώνει αυτά τα αρχεία στον τοπικό δίσκο κάθε χαρτογράφησης. Έτσι όλοι οι χαρτογράφοι μπορούν να φορτώσουν αυτό το επίμονο αρχείο πίνακα κατακερματισμού στη μνήμη και να κάνουν τη σύνδεση όπως πριν. Η ροή εκτέλεσης της βελτιστοποιημένης σύνδεσης χάρτη φαίνεται στο παρακάτω σχήμα. Μετά τη βελτιστοποίηση, ο μικρός πίνακας πρέπει να διαβαστεί μόνο μία φορά. Επίσης, εάν εκτελούνται πολλοί χαρτογράφοι στον ίδιο υπολογιστή, η κατανεμημένη προσωρινή μνήμη χρειάζεται μόνο να ωθήσει ένα αντίγραφο του αρχείου πίνακα κατακερματισμού σε αυτό το μηχάνημα.

Πλεονεκτήματα της χρήσης πλαϊνού χάρτη:

  • Η ένωση από την πλευρά του χάρτη συμβάλλει στην ελαχιστοποίηση του κόστους που προκύπτει για την ταξινόμηση και τη συγχώνευση στο ανάμιξη και περιορίζω στάδια.
  • Η ένωση από την πλευρά του χάρτη βοηθά επίσης στη βελτίωση της απόδοσης της εργασίας μειώνοντας τον χρόνο ολοκλήρωσης της εργασίας.

Μειονεκτήματα του Map-side join:

  • Η ένωση πλευράς χάρτη είναι επαρκής μόνο όταν ένας από τους πίνακες στους οποίους εκτελείτε τη λειτουργία σύνδεσης πλευράς χάρτη είναι αρκετά μικρός για να χωρέσει στη μνήμη. Ως εκ τούτου, δεν είναι κατάλληλο να εκτελέσετε ένωση από πλευράς χάρτη στους πίνακες που είναι τεράστια δεδομένα και στα δύο.

Απλό παράδειγμα για το Map Reduce Joins:

Ας δημιουργήσουμε δύο πίνακες:

  • Εμπ : περιέχει λεπτομέρειες για έναν υπάλληλο, όπως όνομα υπαλλήλου, ταυτότητα υπαλλήλου και τμήμα που ανήκει.

  • Τμήμα: περιέχει τις λεπτομέρειες όπως το Όνομα του Τμήματος, το Αναγνωριστικό του Τμήματος και ούτω καθεξής.

Δημιουργήστε δύο αρχεία εισόδου όπως φαίνεται στην παρακάτω εικόνα για να φορτώσετε τα δεδομένα στους πίνακες που δημιουργήθηκαν.

υπάλληλος.txt

dept.txt

Τώρα, ας φορτώσουμε τα δεδομένα στους πίνακες.

Ας εκτελέσουμε το Πλευρά χάρτη Συμμετοχή στους δύο πίνακες για να εξαγάγετε τη λίστα των τμημάτων στα οποία εργάζεται κάθε υπάλληλος.

Εδώ, το δεύτερο τμήμα είναι ένα μικρό τραπέζι. Να θυμάστε, πάντα ο αριθμός των τμημάτων θα είναι μικρότερος από τον αριθμό των υπαλλήλων σε έναν οργανισμό.

Τώρα ας εκτελέσουμε το ίδιο έργο με τη βοήθεια της κανονικής σύνδεσης Reduce-side.

Κατά την εκτέλεση και των δύο συνδέσεων, μπορείτε να βρείτε τις δύο διαφορές:

  • Η ένωση μείωσης χαρτών ολοκλήρωσε την εργασία σε λιγότερο χρόνο σε σύγκριση με τον χρόνο που απαιτείται για την κανονική συμμετοχή.

  • Ο χάρτης μείωσης έχει ολοκληρώσει τη δουλειά του χωρίς τη βοήθεια μειωτή, ενώ ο κανονικός σύνδεσμος εκτέλεσε αυτή τη δουλειά με τη βοήθεια ενός μειωτήρα.

Ως εκ τούτου, Γίνετε μέλος στο χάρτη είναι το καλύτερο στοίχημά σας όταν ένα από τα τραπέζια είναι αρκετά μικρό για να χωρέσει στη μνήμη για να ολοκληρώσει τη δουλειά σε σύντομο χρονικό διάστημα.

Σε Περιβάλλον σε πραγματικό χρόνο , θα έχετε σύνολα δεδομένων με τεράστιο όγκο δεδομένων. Έτσι, η εκτέλεση της ανάλυσης και η ανάκτηση των δεδομένων θα είναι χρονοβόρα εάν ένα από τα σύνολα δεδομένων έχει μικρότερο μέγεθος. Σε τέτοιες περιπτώσεις Συμμετοχή στο χάρτη θα βοηθήσει στην ολοκλήρωση της εργασίας σε λιγότερο χρόνο.

Ποτέ δεν υπήρξε καλύτερη στιγμή για να μάθετε τον Hadoop! Ξεκινήστε τώρα με το ειδικά επιμελημένο μάθημα Big Data και Hadoop από την Edureka.

χειρισμός αρχείων σε παράδειγμα java

Βιβλιογραφικές αναφορές:
https://www.facebook.com/notes/facebook-engineering/join-optimization-in-apache-hive/470667928919

Σχετικές αναρτήσεις:

7 τρόποι με την εκπαίδευση μεγάλων δεδομένων μπορεί να αλλάξει τον οργανισμό σας