NameNode Υψηλή διαθεσιμότητα με τον διαχειριστή περιοδικών απαρτίας

Το NameNode High Availability είναι μία από τις πιο σημαντικές δυνατότητες του Hadoop 2.0 NameNode Υψηλή διαθεσιμότητα με το Privacy Journal Manager χρησιμοποιείται για την κοινή χρήση αρχείων καταγραφής επεξεργασίας μεταξύ των ενεργών και αναμονών NameNodes.



Αυτό είναι ένα από τα πιο σημαντικά χαρακτηριστικά του Hadoop 2.0. Πριν συζητήσετε τη δυνατότητα Υψηλής Διαθεσιμότητας Namenode, είναι σημαντικό να γνωρίζετε τι είναι η Απαρτία. Η απαρτία είναι ένας γενικός όρος που χρησιμοποιείται στην ομαδοποίηση όπου λέμε ότι ένα συγκεκριμένο σύμπλεγμα είναι σταθερό. Η απαρτία δίνει μια λίστα με μηχανές και βοηθά στον προσδιορισμό της υγείας του συμπλέγματος. Υπάρχουν δύο τύποι απαρτίας: Αναμενόμενη απαρτία και Υπολογισμένη απαρτία.

ΌνομαΚωδικός Υψηλή διαθεσιμότητα με το διαχειριστή περιοδικού απαρτίας (QJM)

Πριν από το Hadoop 2.0, το NameNode ήταν ένα μόνο σημείο αποτυχίας (SPOF) σε ένα σύμπλεγμα HDFS. Κάθε σύμπλεγμα είχε ένα μόνο NameNode και εάν αυτό το μηχάνημα δεν ήταν διαθέσιμο, το σύμπλεγμα στο σύνολό του δεν θα ήταν διαθέσιμο έως ότου επανεκκινήθηκε το NameNode ή ξεκίνησε σε ξεχωριστό μηχάνημα. Σε ένα κλασικό σύμπλεγμα HA, δύο ξεχωριστά μηχανήματα διαμορφώνονται ως NameNodes. Σε οποιοδήποτε σημείο, ένα από τα NameNodes θα είναι σε κατάσταση ενεργού και το άλλο θα βρίσκεται σε κατάσταση αναμονής. Το Active NameNode είναι υπεύθυνο για όλες τις λειτουργίες του πελάτη στο σύμπλεγμα, ενώ το Standby ενεργεί απλώς ως σκλάβος, διατηρώντας αρκετή κατάσταση για να παρέχει ένα γρήγορο failover.

Προκειμένου ο κόμβος αναμονής να διατηρήσει την κατάστασή του συντονισμένη με τον ενεργό κόμβο, και οι δύο κόμβοι επικοινωνούν με μια ομάδα ξεχωριστών δαιμόνων που ονομάζονται «JournalNodes» (JNs). Όταν πραγματοποιείται οποιαδήποτε τροποποίηση χώρου ονομάτων από τον ενεργό κόμβο, καταγράφει μια εγγραφή των αλλαγών που έγιναν, στο JournalNodes. Ο κόμβος αναμονής είναι σε θέση να διαβάσει τις τροποποιημένες πληροφορίες από τα JNs και τις παρακολουθεί τακτικά για αλλαγές. Καθώς ο κόμβος αναμονής βλέπει τις αλλαγές, τότε τις εφαρμόζει στον δικό του χώρο ονομάτων. Σε περίπτωση αποτυχίας, το Standby θα βεβαιωθεί ότι έχει διαβάσει όλες τις αλλαγές από το JounalNodes πριν αλλάξει την κατάστασή του σε «Ενεργή κατάσταση». Αυτό εγγυάται ότι η κατάσταση του χώρου ονομάτων είναι πλήρως συγχρονισμένη πριν εμφανιστεί ένα failover.



ευρεία αλγόριθμος αναζήτησης ψευδοκώδικα

Για να παρέχετε ένα γρήγορο failover, είναι σημαντικό ο κόμβος αναμονής να έχει τις ενημερωμένες και τρέχουσες πληροφορίες σχετικά με τη θέση των μπλοκ στο σύμπλεγμα. Για να συμβεί αυτό, τα DataNodes διαμορφώνονται με τη θέση και των δύο NameNodes και στέλνουν πληροφορίες θέσης μπλοκ και καρδιακούς παλμούς και στα δύο.

Είναι σημαντικό μόνο ένα από τα NameNodes να είναι ενεργό κάθε φορά. Διαφορετικά, η κατάσταση του χώρου ονομάτων θα αποκλίνει μεταξύ των δύο και θα οδηγήσει σε απώλεια δεδομένων ή εσφαλμένα αποτελέσματα. Προκειμένου να αποφευχθεί αυτό, το JournalNodes θα επιτρέπει μόνο ένα όνομαNode σε έναν συγγραφέα κάθε φορά. Κατά τη διάρκεια μιας ανακατεύθυνσης, το NameNode που πρόκειται να ενεργοποιηθεί θα αναλάβει την ευθύνη της γραφής στο JournalNodes.

Έχετε μια ερώτηση για εμάς; Αναφέρετέ τα στην ενότητα σχολίων και θα επικοινωνήσουμε μαζί σας.



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

Επισκόπηση του Hadoop 2.0 Cluster Architecture Federation