Βίντεο: Απόλλων Λιτοχώρου-Διαγόρας Σεβαστής 3-1 HD 4η Α' ΕΠΣ Πιερίας 24-9-2014 Γκολ και φάσεις 2024
Μετά τη φάση Χάρτης και πριν από την έναρξη της φάσης Μείωση είναι μια διαδικασία μεταβίβασης, γνωστή ως sort . Εδώ, τα δεδομένα από τις εργασίες χαρτογράφησης προετοιμάζονται και μετακινούνται στους κόμβους όπου θα εκτελούνται οι εργασίες μειωτή. Όταν ολοκληρωθεί η εργασία χαρτογράφησης, τα αποτελέσματα ταξινομούνται ανά κλειδί, διαχωρίζονται εάν υπάρχουν πολλαπλοί αναγωγείς και στη συνέχεια εγγράφονται στο δίσκο.
Μπορείτε να δείτε αυτή την ιδέα στο παρακάτω σχήμα, το οποίο δείχνει τη ροή επεξεργασίας δεδομένων MapReduce και την αλληλεπίδρασή της με τα φυσικά συστατικά του συμπλέγματος Hadoop. (Μια γρήγορη σημείωση: Τα δεδομένα στη μνήμη αντιπροσωπεύονται από λευκά τετράγωνα και τα δεδομένα που είναι αποθηκευμένα στο δίσκο αντιπροσωπεύονται από γκρι τετράγωνα.)
Για να επιταχυνθεί η συνολική διαδικασία MapReduce, τα δεδομένα μετακινούνται αμέσως στους κόμβους των μειωτήρων, για να αποφευχθεί η πλημμύρα της δραστηριότητας του δικτύου όταν τελειώσει η εργασία του τελικού χαρτογράφου. Αυτή η μεταφορά συμβαίνει ενώ εκτελείται η εργασία χαρτογράφησης, καθώς οι εξόδους για κάθε εγγραφή - θυμηθείτε - αποθηκεύονται στη μνήμη μιας εργασίας αναστολέα αναμονής. (Μπορείτε να ρυθμίσετε εάν αυτό συμβαίνει - ή δεν συμβαίνει - και επίσης τον αριθμό των εμπλεκόμενων θεμάτων.)
Λάβετε υπόψη ότι αν και μια εργασία μειωτήρα μπορεί να έχει το μεγαλύτερο μέρος της εξόδου της εντολής χαρτογράφου, η επεξεργασία της μειωμένης εργασίας δεν μπορεί να ξεκινήσει μέχρι να ολοκληρωθούν όλες οι εργασίες χαρτογράφησης.
Για να αποφύγετε σενάρια όπου η απόδοση μίας εργασίας MapReduce παρεμποδίζεται από μια αποτυχημένη εργασία χαρτογράφησης που εκτελείται σε έναν υποτελές κόμβο υποτελούς λειτουργίας, το πλαίσιο MapReduce χρησιμοποιεί μια έννοια που ονομάζεται κερδοσκοπική εκτέλεση .
Σε περίπτωση που κάποιες εργασίες χαρτογράφησης εκτελούνται πιο αργά από ό, τι θεωρείται λογικό, το Application Master θα δημιουργήσει διπλές εργασίες (στο Hadoop 1, το JobTracker το κάνει αυτό). Όποια εργασία τελειώνει πρώτα - το αντίγραφο ή το πρωτότυπο - τα αποτελέσματα αποθηκεύονται στο δίσκο και η άλλη εργασία σκοτώνεται. Εάν παρακολουθείτε στενά τις εργασίες σας και αναρωτιέστε γιατί υπάρχουν περισσότερες εργασίες χαρτογράφησης που εκτελούνται από ό, τι περιμένετε, αυτό είναι ένας πιθανός λόγος.
Η έξοδος από τις εργασίες χαρτογράφησης δεν γράφεται σε HDFS, αλλά σε τοπικό δίσκο στον κόμβο υποτελούς λειτουργίας όπου εκτελέστηκε η εργασία χαρτογράφησης. Ως εκ τούτου, δεν αναπαράγεται σε ολόκληρη τη συστοιχία Hadoop.
Εκτός από τη συμπίεση της εξόδου, μπορείτε δυνητικά να αυξήσετε την απόδοση εκτελώντας μια εργασία συνδυασμού. Αυτή η απλή τακτική, που παρουσιάζεται εδώ, προϋποθέτει τοπική μείωση της παραγωγής για μεμονωμένες εργασίες χαρτογράφησης.
Στην πλειονότητα των περιπτώσεων, δεν απαιτείται επιπλέον προγραμματισμός, καθώς μπορείτε να πείτε στο σύστημα να χρησιμοποιεί τη λειτουργία μειωτήρα. Εάν δεν χρησιμοποιείτε τη λειτουργία μειωτήρα, πρέπει να βεβαιωθείτε ότι η έξοδος της λειτουργίας συνδυαστή είναι ίδια με αυτή της λειτουργίας μειωτήρα.
Είναι στο πλαίσιο του MapReduce αν η συνδυασμένη λειτουργία πρέπει να εκτελείται μία φορά, πολλές φορές ή ποτέ, έτσι είναι κρίσιμο ο κώδικας του συνδυαστή να διασφαλίζει ότι τα τελικά αποτελέσματα δεν επηρεάζονται από πολλαπλές διαδρομές. Η λειτουργία του συνδυαστή μπορεί να αποφέρει ένα πλεονέκτημα απόδοσης μειώνοντας την ποσότητα των ενδιάμεσων δεδομένων που διαφορετικά θα έπρεπε να μεταφερθούν μέσω του δικτύου.
Αυτό επίσης μειώνει το ποσό επεξεργασίας που θα έπρεπε να κάνουν οι εργασίες μειωτήρα. Εκτελείτε μια πρόσθετη εργασία εδώ, οπότε είναι πιθανό ότι οποιοδήποτε κέρδος απόδοσης είναι αμελητέο ή μπορεί ακόμη και να οδηγήσει σε χειρότερη συνολική απόδοση. Η διανυόμενη απόσταση μπορεί να διαφέρει, γι 'αυτό δοκιμάστε προσεκτικά.
Αφού αντιγραφούν όλα τα αποτελέσματα των εργασιών χαρτογράφησης στους κόμβους των εργασιών μειωτή, τα αρχεία αυτά συγχωνεύονται και ταξινομούνται.