Τι είναι το MapReduce στο Hadoop; Αρχιτεκτονική - Παράδειγμα

Πίνακας περιεχομένων:

Anonim

Τι είναι το MapReduce στο Hadoop;

Το MapReduce είναι ένα πλαίσιο λογισμικού και μοντέλο προγραμματισμού που χρησιμοποιείται για την επεξεργασία τεράστιων ποσοτήτων δεδομένων. Το πρόγραμμα MapReduce λειτουργεί σε δύο φάσεις, δηλαδή το Map and Reduce. Οι εργασίες χαρτών ασχολούνται με τη διάσπαση και τη χαρτογράφηση δεδομένων ενώ Μειώστε την αναδιάταξη εργασιών και μειώστε τα δεδομένα.

Το Hadoop έχει τη δυνατότητα να εκτελεί προγράμματα MapReduce γραμμένα σε διάφορες γλώσσες: Java, Ruby, Python και C ++. Τα προγράμματα του Map Reduce στο cloud computing έχουν παράλληλο χαρακτήρα, επομένως είναι πολύ χρήσιμα για την εκτέλεση ανάλυσης δεδομένων μεγάλης κλίμακας χρησιμοποιώντας πολλαπλές μηχανές στο σύμπλεγμα.

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

Σε αυτό το εκπαιδευτικό εκπαιδευτικό Hadoop MapReduce, θα μάθετε-

  • Τι είναι το MapReduce στο Hadoop;
  • Η MapReduce Architecture in Big Data εξήγησε λεπτομερώς
  • Η MapReduce Architecture εξήγησε λεπτομερώς
  • Πώς λειτουργεί η οργάνωση MapReduce;

Η MapReduce Architecture in Big Data εξήγησε λεπτομερώς

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

Τώρα σε αυτό το σεμινάριο MapReduce, ας καταλάβουμε με ένα παράδειγμα του MapReduce-

Σκεφτείτε ότι έχετε ακολουθήσει δεδομένα εισόδου για το Πρόγραμμα MapReduce στο Big data

Welcome to Hadoop ClassHadoop is goodHadoop is bad

Αρχιτεκτονική MapReduce

Το τελικό αποτέλεσμα της εργασίας MapReduce είναι

κακό 1
Τάξη 1
Καλός 1
Χάδοπ 3
είναι 2
προς την 1
καλως ΗΡΘΑΤΕ 1

Τα δεδομένα περνούν από τις ακόλουθες φάσεις του MapReduce στο Big Data

Διαχωρισμοί εισόδου:

Μια είσοδος σε μια εργασία MapReduce in Big Data χωρίζεται σε κομμάτια σταθερού μεγέθους που ονομάζονται διαχωρισμοί εισόδου Το διαχωρισμό εισόδου είναι ένα κομμάτι της εισόδου που καταναλώνεται από έναν μόνο χάρτη

Χαρτογράφηση

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

Ανακάτεμα

Αυτή η φάση καταναλώνει την έξοδο της φάσης χαρτογράφησης. Ο στόχος του είναι να ενοποιήσει τις σχετικές εγγραφές από την παραγωγή φάσης χαρτογράφησης. Στο παράδειγμά μας, οι ίδιες λέξεις συνδυάζονται μαζί με την αντίστοιχη συχνότητά τους.

Αναγωγικός

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

Στο παράδειγμά μας, αυτή η φάση συγκεντρώνει τις τιμές από τη φάση ανακατέματος, υπολογίζει τις συνολικές εμφανίσεις κάθε λέξης.

Η MapReduce Architecture εξήγησε λεπτομερώς

  • Δημιουργείται μία εργασία χάρτη για κάθε διαίρεση που εκτελεί τη λειτουργία χάρτη για κάθε εγγραφή στο διαχωρισμό.
  • Είναι πάντα ωφέλιμο να έχουμε πολλαπλούς διαχωρισμούς, επειδή ο χρόνος που απαιτείται για την επεξεργασία ενός διαχωρισμού είναι μικρός σε σύγκριση με το χρόνο που απαιτείται για την επεξεργασία ολόκληρης της εισόδου. Όταν οι διαχωρισμοί είναι μικρότεροι, η επεξεργασία είναι καλύτερα να φορτωθεί ισορροπημένη καθώς επεξεργαζόμαστε τα διαχωριστικά παράλληλα.
  • Ωστόσο, δεν είναι επίσης επιθυμητό να έχουμε πολύ μικρές διαστάσεις. Όταν οι διασπάσεις είναι πολύ μικρές, η υπερφόρτωση της διαχείρισης των διαχωρισμών και της δημιουργίας εργασιών χαρτών αρχίζει να κυριαρχεί στον συνολικό χρόνο εκτέλεσης εργασίας.
  • Για τις περισσότερες εργασίες, είναι καλύτερο να κάνετε ένα διαχωρισμένο μέγεθος ίσο με το μέγεθος ενός μπλοκ HDFS (που είναι 64 MB, από προεπιλογή).
  • Η εκτέλεση εργασιών χάρτη οδηγεί σε έξοδο εγγραφής σε τοπικό δίσκο στον αντίστοιχο κόμβο και όχι σε HDFS.
  • Ο λόγος για την επιλογή τοπικού δίσκου μέσω HDFS είναι, να αποφευχθεί η αναπαραγωγή που λαμβάνει χώρα σε περίπτωση λειτουργίας του καταστήματος HDFS.
  • Η έξοδος χάρτη είναι ενδιάμεση έξοδος η οποία υποβάλλεται σε επεξεργασία με εργασίες μείωσης για την παραγωγή της τελικής παραγωγής.
  • Μόλις ολοκληρωθεί η εργασία, η έξοδος του χάρτη μπορεί να απορριφθεί. Έτσι, η αποθήκευσή του σε HDFS με αναπαραγωγή γίνεται υπερβολική.
  • Σε περίπτωση αποτυχίας κόμβου, προτού καταναλωθεί η έξοδος χάρτη από την εργασία μείωσης, ο Hadoop εκτελεί ξανά την εργασία χάρτη σε έναν άλλο κόμβο και δημιουργεί εκ νέου την έξοδο χάρτη.
  • Η εργασία μείωσης δεν λειτουργεί με την έννοια της τοποθεσίας δεδομένων. Μια έξοδος κάθε εργασίας χαρτών τροφοδοτείται στην εργασία μείωσης. Η έξοδος χάρτη μεταφέρεται στο μηχάνημα όπου εκτελείται εργασία μείωσης.
  • Σε αυτό το μηχάνημα, η έξοδος συγχωνεύεται και μετά μεταφέρεται στη λειτουργία μείωσης που καθορίζεται από το χρήστη.
  • Σε αντίθεση με την έξοδο χάρτη, η μείωση της παραγωγής αποθηκεύεται σε HDFS (το πρώτο αντίγραφο αποθηκεύεται στον τοπικό κόμβο και άλλα αντίγραφα αποθηκεύονται σε κόμβους εκτός ραφιού). Έτσι, γράφοντας τη μείωση της παραγωγής

Πώς λειτουργεί η οργάνωση MapReduce;

Τώρα σε αυτό το σεμινάριο MapReduce, θα μάθουμε πώς λειτουργεί το MapReduce

Ο Hadoop χωρίζει την εργασία σε εργασίες. Υπάρχουν δύο τύποι εργασιών:

  1. Εργασίες χαρτών (Διαχωρισμοί & χαρτογράφηση)
  2. Μειώστε τις εργασίες (Ανακάτεμα, Μείωση)

όπως αναφέρθηκε προηγουμένως.

Η πλήρης διαδικασία εκτέλεσης (εκτέλεση εργασιών Map and Reduce, και οι δύο) ελέγχεται από δύο τύπους οντοτήτων που ονομάζονται a

  1. Jobtracker : Δράζει σαν πλοίαρχος (υπεύθυνος για την πλήρη εκτέλεση της υποβαλλόμενης εργασίας)
  2. Multiple Task Trackers : Δράζει σαν σκλάβοι, καθένας από αυτούς εκτελεί τη δουλειά

Για κάθε εργασία που υποβάλλεται για εκτέλεση στο σύστημα, υπάρχει ένα Jobtracker που βρίσκεται στο Namenode και υπάρχουν πολλά tasktrackers που βρίσκονται στο Datanode .

Πώς λειτουργεί το Hadoop MapReduce
  • Μια εργασία χωρίζεται σε πολλαπλές εργασίες που στη συνέχεια εκτελούνται σε πολλούς κόμβους δεδομένων σε ένα σύμπλεγμα.
  • Είναι ευθύνη του tracker εργασίας να συντονίζει τη δραστηριότητα προγραμματίζοντας εργασίες για εκτέλεση σε διαφορετικούς κόμβους δεδομένων.
  • Στη συνέχεια, η εκτέλεση μεμονωμένης εργασίας είναι η παρακολούθηση από την παρακολούθηση εργασιών, η οποία βρίσκεται σε κάθε κόμβο δεδομένων που εκτελεί μέρος της εργασίας.
  • Η ευθύνη του ιχνηλάτη εργασιών είναι να στείλει την αναφορά προόδου στον ιχνηλάτη εργασίας.
  • Επιπλέον, ο εντοπιστής εργασιών στέλνει περιοδικά σήμα «καρδιακού παλμού» στο Jobtracker έτσι ώστε να τον ειδοποιεί για την τρέχουσα κατάσταση του συστήματος.
  • Έτσι, το tracker εργασίας παρακολουθεί τη συνολική πρόοδο κάθε εργασίας. Σε περίπτωση αποτυχίας εργασιών, το πρόγραμμα παρακολούθησης εργασιών μπορεί να το επαναπρογραμματίσει σε διαφορετικό πρόγραμμα παρακολούθησης εργασιών.