Βίντεο: Επλήγησαν περιοχές σε Καβάλα-Δράμα| 26/01/2019 | ΕΡΤ 2024
RegionServers είναι ένα πράγμα, αλλά πρέπει επίσης να ρίξετε μια ματιά στο πώς λειτουργούν οι μεμονωμένες περιφέρειες. Στην HBase, ένας πίνακας κατανέμεται σε διάφορα RegionServers και αποτελείται από μεμονωμένες περιοχές. Καθώς οι πίνακες χωρίζονται, οι διαχωρισμοί γίνονται περιοχές. Οι περιφέρειες αποθηκεύουν μια σειρά από ζεύγη κλειδιών-τιμών και κάθε RegionServer διαχειρίζεται έναν διαμορφωμένο αριθμό περιφερειών.
Αλλά τι φαίνονται οι μεμονωμένες περιοχές; Το HBase είναι ένα κατάστημα δεδομένων με βάση την οικογένεια και τις στήλες, έτσι πώς οι μεμονωμένες περιοχές αποθηκεύουν ζευγάρια κλειδιού-τιμής με βάση τις οικογένειες των στηλών στις οποίες ανήκουν; Το παρακάτω σχήμα αρχίζει να απαντά σε αυτές τις ερωτήσεις και σας βοηθά να αφομοιώσετε περισσότερες ζωτικές πληροφορίες σχετικά με την αρχιτεκτονική του HBase.
Το HBase είναι γραμμένο σε Java - όπως και η συντριπτική πλειοψηφία των τεχνολογιών Hadoop. Η Java είναι μια γλώσσα προγραμματισμού προσανατολισμένη σε αντικείμενα και μια κομψή τεχνολογία για κατανεμημένους υπολογιστές. Έτσι, καθώς συνεχίζετε να μάθετε περισσότερα για το HBase, θυμηθείτε ότι όλα τα στοιχεία της αρχιτεκτονικής είναι τελικά αντικείμενα της Java.
Πρώτα απ 'όλα, ο προηγούμενος αριθμός δίνει μια αρκετά καλή ιδέα για το τι αντικείμενα στην περιοχή μοιάζουν πραγματικά, γενικά μιλώντας. Επίσης, καθιστά σαφές ότι οι περιφέρειες χωρίζουν τα δεδομένα σε οικογένειες στηλών και αποθηκεύουν τα δεδομένα στο HDFS χρησιμοποιώντας αντικείμενα HFile.
Όταν οι πελάτες βάζουν ζεύγη κλειδιών-τιμών στο σύστημα, τα πλήκτρα επεξεργάζονται έτσι ώστε τα δεδομένα να αποθηκεύονται με βάση την οικογένεια στηλών στην οποία ανήκει το ζεύγος. Όπως φαίνεται στο σχήμα, κάθε αντικείμενο αποθήκευσης οικογένειας στηλών έχει μια κρυφή μνήμη ανάγνωσης που ονομάζεται BlockCache και μια προσωρινή μνήμη εγγραφής που ονομάζεται MemStore. Το BlockCache βοηθά με την απόδοση τυχαίας ανάγνωσης.
Τα δεδομένα διαβάζονται σε μπλοκ από το HDFS και αποθηκεύονται στο BlockCache. Ακολούθως διαβάζεται ότι τα δεδομένα - ή τα δεδομένα που είναι αποθηκευμένα σε κοντινή απόσταση - θα διαβαστούν από τη μνήμη RAM αντί του δίσκου, βελτιώνοντας τη συνολική απόδοση. Το ημερολόγιο Write Ahead (WAL, σύντομα) διασφαλίζει ότι η εγγραφή σας HBase είναι αξιόπιστη. Υπάρχει ένα WAL ανά RegionServer.
Να σέβεστε πάντοτε το νόμο περί σιδηρόδρομου των κατανεμημένων υπολογιστών: Η αποτυχία δεν είναι η εξαίρεση - είναι ο κανόνας, ειδικά όταν συγκεντρώνονται εκατοντάδες ή και χιλιάδες εξυπηρετητές. Η Google ακολούθησε το νόμο περί σιδήρου κατά το σχεδιασμό του BigTable και ακολούθησε το HBase.
Όταν γράφετε ή τροποποιείτε δεδομένα στο HBase, τα δεδομένα παραμένουν για πρώτη φορά στο WAL, το οποίο αποθηκεύεται στο HDFS και στη συνέχεια τα δεδομένα εγγράφονται στην προσωρινή μνήμη MemStore. Σε ρυθμιζόμενα διαστήματα, τα ζεύγη κλειδιών-τιμών που είναι αποθηκευμένα στο MemStore γράφονται στα HFiles στο HDFS και στη συνέχεια οι εγγραφές WAL διαγράφονται.
Σε περίπτωση αποτυχίας μετά από η αρχική εγγραφή WAL αλλά πριν από η τελική MemStore γράψει στο δίσκο, το WAL μπορεί να επαναληφθεί για να αποφευχθεί τυχόν απώλεια δεδομένων.
Τα τρία αντικείμενα HFile είναι σε μια οικογένεια στηλών και δύο στην άλλη. Ο σχεδιασμός του HBase είναι να ξεπλύνετε τα δεδομένα της οικογένειας των κολώνων που είναι αποθηκευμένα στο MemStore σε ένα HFile ανά flush. Στη συνέχεια, σε ρυθμιζόμενα διαστήματα, τα HFiles συνδυάζονται σε μεγαλύτερα HFiles. Αυτή η στρατηγική αναστέλλει την κρίσιμη λειτουργία συμπύκνωσης στην HBase.