τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Κατάλογος άρθρων
Βασικές αρχιτεκτονικές αρχές του Νήματος στο Hadoop
3. Διαδικασία εκτέλεσης εργασιών νήματος
4. Χαρακτηριστικά και σενάρια χρήσης των τριών προγραμματιστών πόρων του Yarn
Το Apache Hadoop Yarn (Et Another Reasource Negotiator, ένας άλλος συντονιστής πόρων) είναι ένας διαχειριστής πόρων που χρησιμοποιείται μετά την έκδοση Hadoop2.x, ο οποίος μπορεί να παρέχει μια ενοποιημένη πλατφόρμα διαχείρισης πόρων για εφαρμογές ανώτερου επιπέδου.
Το Yarn αποτελείται κυρίως από ResourceManager, NodeManager, ApplicationMaster και Container.
ResourceManager
Ο ResourceManager είναι ο κεντρικός διαχειριστής στο σύμπλεγμα Yarn και είναι υπεύθυνος για την κατανομή πόρων και τον προγραμματισμό ολόκληρου του συμπλέγματος. Το ResourceManager είναι υπεύθυνο για την παρακολούθηση της κατάστασης των κόμβων NodeManager, τη συλλογή πόρων συμπλέγματος, την επεξεργασία αιτημάτων πόρων για εργασίες που υποβάλλονται από τον Πελάτη και την εκκίνηση και την παρακολούθηση του ApplicationMaster για κάθε Εφαρμογή.
NodeManager
Το NodeManager είναι υπεύθυνο για τη διαχείριση των πόρων (όπως μνήμη, CPU, κ.λπ.) σε κάθε κόμβο και την αναφορά στο ResourceManager. Όταν το ResourceManager εκχωρεί ένα κοντέινερ (Container) στο NodeManager, το NodeManager είναι υπεύθυνο για την εκκίνηση του κοντέινερ και την παρακολούθηση της λειτουργίας του κοντέινερ.
Εφαρμογή Master
Κάθε εφαρμογή που εκτελείται στο Yarn θα ξεκινήσει ένα αντίστοιχο ApplicationMaster, το οποίο είναι υπεύθυνο για την αίτηση για πόρους με το ResourceManager και τη διαχείριση των εργασιών εφαρμογής. Το ApplicationMaster είναι ουσιαστικά ένα κοντέινερ που εκτελείται από το ResourceManager και ξεκινά από το NodeManager, θα υποβάλει αίτηση για πόρους από το ResourceManager για την εκτέλεση της εφαρμογής, το ApplicationMaster θα συνδεθεί με το αντίστοιχο NodeManager. εκκίνηση του Container και διαχείριση των πόρων που εκτελούνται στο Container.
Δοχείο
Το Container Container είναι η βασική μονάδα εκτέλεσης στο Yarn, που χρησιμοποιείται για την εκτέλεση εργασιών εφαρμογής Είναι ένα εικονικό περιβάλλον που περιέχει κώδικα εφαρμογής, εξαρτήσεις και πόρους που απαιτούνται για τη λειτουργία (μνήμη, CPU, δίσκος, δίκτυο). Κάθε κοντέινερ εκχωρείται στο ApplicationMaster από το ResourceManager και ξεκινά και διαχειρίζεται στον αντίστοιχο κόμβο από το NodeManager. Η χρήση πόρων του κοντέινερ παρακολουθείται από το NodeManager και αναφέρεται στο ResourceManager όταν είναι απαραίτητο.
Ο πυρήνας του Yarn είναι ο διαχωρισμός των λειτουργιών διαχείρισης πόρων και προγραμματισμού εργασιών του JobTracker στο MR1, οι οποίες υλοποιούνται από τις διεργασίες ResourceManager και ApplicationMaster αντίστοιχα προγραμματισμός εργασιών εφαρμογής, παρακολούθηση εργασιών και ανοχή σφαλμάτων.
Όταν ο πελάτης υποβάλλει μια εργασία MR στο Yarn, οι πόροι εργασιών MR (Split, διαμόρφωση πόρων, πληροφορίες πακέτου Jar) θα μεταφορτωθούν πρώτα στο HDFS.
Ο πελάτης κάνει αίτηση στο ResourceManager για να ξεκινήσει το ApplicationMaster.
Το ResourceManager θα επιλέξει έναν κόμβο NodeManager που δεν είναι σχετικά απασχολημένος και θα ειδοποιήσει τον κόμβο για την εκκίνηση του ApplicationMaster (Container).
Αφού ξεκινήσει το ApplicationMaster, θα πραγματοποιήσει λήψη των πληροφοριών πόρων εργασιών MR από το HDFS στο τοπικό και, στη συνέχεια, θα υποβάλει αίτηση για πόρους από το ResourceManager για να ξεκινήσει η Εργασία MR.
Το ResourceManager επιστρέφει τη λίστα πόρων στο ApplicationMaster.
Στη συνέχεια, το ApplicationMaster ειδοποιεί τον αντίστοιχο NodeManager για την εκκίνηση του Container.
Μετά την εκκίνηση του Container, θα καταχωρηθεί αντίστροφα στο ApplicationMaster.
Το ApplicationMaster στέλνει το Task στο Container για εκτέλεση και το Task εκτελεί την επιχειρηματική λογική του κώδικα που γράψαμε.
Προγραμματιστής FIFO (Προγραμματιστής First-In-Fist-Out) , ο απλούστερος προγραμματιστής στο Yarn. Το FIFO Scheduler θα τοποθετήσει τις υποβληθείσες αιτήσεις σε μια ουρά πρώτης εισαγωγής, με τη σειρά υποβολής κατά την κατανομή πόρων, οι πόροι θα κατανεμηθούν πρώτα στην κορυφαία εφαρμογή στην ουρά και στη συνέχεια θα κατανεμηθούν πόροι στην επόμενη εφαρμογή μετά την πληρούνται οι απαιτήσεις πόρων της κορυφαίας εφαρμογής Μια εφαρμογή εκχωρεί πόρους και ούτω καθεξής. Όταν αυτού του είδους ο χρονοπρογραμματιστής προγραμματίζει πόρους, είναι πιθανό μια εφαρμογή με μεγάλες απαιτήσεις σε πόρους να καταλαμβάνει όλους τους πόρους του συμπλέγματος, προκαλώντας τον αποκλεισμό άλλων εφαρμογών.
Προγραμματιστής χωρητικότητας (Capacity Schduler) Είναι ο προεπιλεγμένος προγραμματιστής πόρων που έχει ρυθμιστεί στο Yarn, επιτρέποντας στους πολλούς ενοικιαστές να μοιράζονται με ασφάλεια ένα μεγάλο σύμπλεγμα. Ο χρονοπρογραμματιστής χωρητικότητας υποστηρίζει τη διαμόρφωση πολλαπλών αναλογιών πόρων. κάθε ουρά πόρων υιοθετεί εσωτερικά τη στρατηγική προγραμματισμού FIFO.
Fair SchedulerΕίναι μια μέθοδος προγραμματισμού πόρων που κατανέμει αρκετά τους πόρους του Νήματος σε κάθε εφαρμογή.
Η διαφορά μεταξύ των προγραμματιστών πόρων FIFO, Capacity και Fair στο Yarn είναι η εξής:
Προγραμματιστής πόρων νήματος | Χαρακτηριστικά | Εφαρμόσιμη σκηνή |
Προγραμματιστής FIFO | 1. Απλό και εύκολο στην κατανόηση, δεν απαιτείται πρόσθετη διαμόρφωση. 2. Οι αιτήσεις εκτελούνται με τη σειρά που υποβάλλονται (πρώτη είσοδος, πρώτη έξοδος). 3. Δεν είναι κατάλληλο για κοινόχρηστα συμπλέγματα, κάθε εφαρμογή πρέπει να περιμένει μέχρι να εκτελεστεί η σειρά της. | Μη κοινόχρηστα συμπλέγματα, σενάρια που δεν έχουν υψηλές απαιτήσεις ως προς τη σειρά εκτέλεσης εργασιών. Γενικά δεν χρησιμοποιείται σε περιβάλλοντα παραγωγής. |
Προγραμματιστής χωρητικότητας (χρησιμοποιείται από προεπιλογή σε νήμα ανοιχτού κώδικα) | 1. Επιτρέψτε σε πολλούς οργανισμούς να μοιράζονται πόρους συμπλέγματος και κάθε οργανισμός έχει μια αποκλειστική ουρά. 2. Υποστήριξη ιεραρχικής διαίρεσης ουρών και ευέλικτης διαμόρφωσης πόρων ουράς. 3. Μπορείτε να περιορίσετε τη μέγιστη χωρητικότητα της ουράς και να μειώσετε τον ανταγωνισμό πόρων. | Κοινόχρηστα σενάρια συμπλέγματος, όπου πολλοί οργανισμοί ή ομάδες μοιράζονται τους ίδιους πόρους συμπλέγματος. |
Δίκαιος προγραμματιστής (χρησιμοποιείται από το CDH από προεπιλογή) | 1. Κατανείμετε σωστά τους πόρους σε όλες τις εφαρμογές που εκτελούνται και υποστηρίξτε τη δίκαιη κατανομή των πόρων μεταξύ πολλών ουρών. 2. Υποστήριξη δυναμικής δημιουργίας ουρών και προσδιορισμός της τοποθέτησης των εφαρμογών μέσω ενός συνόλου συστημάτων κανόνων. 3. Υποστήριξη της λειτουργίας πρόληψης πόρων για τη διασφάλιση δίκαιης κατανομής των πόρων. | 1. Σενάρια όπου πολλοί χρήστες ή οργανισμοί πρέπει να αποκτήσουν πόρους δίκαια σε ένα κοινό σύμπλεγμα. 2. Περιβάλλοντα με υψηλές απαιτήσεις για έλεγχο πόρων σε επίπεδο ουράς και λεπτομερείς στρατηγικές προγραμματισμού. |