Tutorial HBase: Εισαγωγή HBase και Μελέτη περίπτωσης Facebook



Αυτό το ιστολόγιο εκμάθησης HBase σας παρουσιάζει το HBase και τις δυνατότητές του. Καλύπτει επίσης τη μελέτη περίπτωσης του Facebook Messenger για να κατανοήσει τα οφέλη του HBase.

Όπως αναφέραμε στο blog, το HBase αποτελεί ουσιαστικό μέρος του οικοσυστήματος Hadoop. Τώρα λοιπόν, θα ήθελα να σας καθοδηγήσω στο φροντιστήριο HBase, όπου θα σας συστήσω το Apache HBase και, στη συνέχεια, θα εξετάσουμε τη μελέτη περίπτωσης του Facebook Messenger. Θα καλύψουμε τα ακόλουθα θέματα σε αυτό το ιστολόγιο φροντιστηρίων HBase:

Apache HBase Tutorial: Ιστορία

Ας ξεκινήσουμε με το ιστορικό του HBase και να μάθουμε πώς εξελίχθηκε το HBase για μια χρονική περίοδο.





Ιστορία του HBase - HBase Tutorial - Edureka

  • Το Apache HBase διαμορφώνεται σύμφωνα με το BigTable της Google, το οποίο χρησιμοποιείται για τη συλλογή δεδομένων και την εξυπηρέτηση αιτημάτων για διάφορες υπηρεσίες Google, όπως Χάρτες, Οικονομικά, Earth κ.λπ.
  • Το Apache HBase ξεκίνησε ως έργο από την εταιρεία Powerset for Natural Language Search, η οποία χειριζόταν τεράστια και αραιά σύνολα δεδομένων.
  • Το Apache HBase κυκλοφόρησε για πρώτη φορά τον Φεβρουάριο του 2007. Αργότερα τον Ιανουάριο του 2008, το HBase έγινε υπο-έργο του Apache Hadoop.
  • Το 2010, το HBase έγινε έργο ανώτατου επιπέδου της Apache.

Εκπαιδευτικό HBase | Βάσεις δεδομένων NoSQL | Έντρεκα



Αφού μάθετε για την ιστορία του Apache HBase, θα θέλατε να μάθετε τι είναι το Apache HBase; Ας προχωρήσουμε περαιτέρω και ρίξτε μια ματιά.

Apache HBase Tutorial: Εισαγωγή στο HBase

Το HBase είναι ανοιχτού κώδικα, πολυδιάστατο, κατανεμημένο, επεκτάσιμο και a Βάση δεδομένων NoSQL γραμμένο στην Ιάβα. Το HBase τρέχει πάνω από HDFS (Hadoop Distributed File System) και παρέχει δυνατότητες όπως το BigTable στο Hadoop. Έχει σχεδιαστεί για να παρέχει έναν ανεκτικό σε σφάλματα τρόπο αποθήκευσης μεγάλης συλλογής αραιών συνόλων δεδομένων.

Από τότε, το HBase επιτυγχάνει υψηλή απόδοση και χαμηλό λανθάνοντα χρόνο παρέχοντας ταχύτερη πρόσβαση ανάγνωσης / εγγραφής σε τεράστια σύνολα δεδομένων. Επομένως, το HBase είναι η επιλογή για εφαρμογές που απαιτούν γρήγορη και τυχαία πρόσβαση σε μεγάλο αριθμό δεδομένων.



Παρέχει συμπίεση, λειτουργίες στη μνήμη και φίλτρα Bloom (δομή δεδομένων που λέει εάν υπάρχει μια τιμή σε ένα σύνολο ή όχι) για να ικανοποιήσει την απαίτηση γρήγορης και τυχαίας ανάγνωσης.

Ας το καταλάβουμε μέσω ενός παραδείγματος: Ένας κινητήρας τζετ δημιουργεί διάφορους τύπους δεδομένων από διαφορετικούς αισθητήρες, όπως αισθητήρα πίεσης, αισθητήρα θερμοκρασίας, αισθητήρα ταχύτητας κ.λπ., το οποίο υποδεικνύει την υγεία του κινητήρα. Αυτό είναι πολύ χρήσιμο για την κατανόηση των προβλημάτων και της κατάστασης της πτήσης. Οι συνεχείς λειτουργίες κινητήρα παράγουν δεδομένα 500 GB ανά πτήση και περίπου 300 χιλιάδες πτήσεις την ημέρα περίπου. Έτσι, το Engine Analytics που εφαρμόζεται σε τέτοια δεδομένα σε σχεδόν πραγματικό χρόνο μπορεί να χρησιμοποιηθεί για την προληπτική διάγνωση προβλημάτων και τη μείωση του μη προγραμματισμένου χρόνου διακοπής. Αυτό απαιτεί ένα κατανεμημένο περιβάλλον για την αποθήκευση μεγάλου όγκου δεδομένων γρήγορα τυχαία διαβάζει και γράφει για επεξεργασία σε πραγματικό χρόνο. Εδώ, το HBase έρχεται για τη διάσωση. Θα μιλήσω για το HBase Διαβάστε και γράψτε αναλυτικά στο επόμενο blog μου Αρχιτεκτονική HBase .

Όπως γνωρίζουμε, το HBase είναι μια βάση δεδομένων NoSQL. Έτσι, προτού καταλάβετε περισσότερα για το HBase, ας συζητήσουμε πρώτα για τις βάσεις δεδομένων NoSQL και τους τύπους του.

Οδηγός Apache HBase: Βάσεις δεδομένων NoSQL

NoSQL σημαίνει Όχι μόνο η SQL . Οι βάσεις δεδομένων NoSQL είναι μοντελοποιημένες με τρόπο που να μπορεί να αντιπροσωπεύει δεδομένα εκτός από μορφές πίνακα, σχεσιακές βάσεις δεδομένων. Χρησιμοποιεί διαφορετικές μορφές για την αναπαράσταση δεδομένων σε βάσεις δεδομένων και έτσι, υπάρχουν διαφορετικοί τύποι βάσεων δεδομένων NoSQL με βάση τη μορφή αναπαράστασής τους. Οι περισσότερες από τις βάσεις δεδομένων NoSQL αξιοποιούν τη διαθεσιμότητα και την ταχύτητα σε σχέση με τη συνοχή. Τώρα, ας προχωρήσουμε και να κατανοήσουμε τους διαφορετικούς τύπους βάσεων δεδομένων NoSQL και τις μορφές αναπαράστασής τους.

Καταστήματα Key-Value:

Πρόκειται για μια βάση δεδομένων χωρίς σχήμα που περιέχει κλειδιά και τιμές. Κάθε κλειδί, δείχνει μια τιμή που είναι ένας πίνακας byte, μπορεί να είναι μια συμβολοσειρά, BLOB, XML, κ.λπ. π.χ. Το Lamborghini είναι ένα κλειδί και μπορεί να δείξει μια τιμή Gallardo, Aventador, Murciélago, Reventón, Diablo, Huracán, Veneno, Centenario κ.λπ.

Το Key-Value αποθηκεύει βάσεις δεδομένων: Aerospike, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, HyperDex, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, Berkeley DB.

Θήκη χρήσης

Τα καταστήματα κλειδί-τιμής χειρίζονται το μέγεθος καλά και είναι καλοί στην επεξεργασία μιας σταθερής ροής λειτουργιών ανάγνωσης / εγγραφής με χαμηλό λανθάνοντα χρόνο. Αυτό τα καθιστά ιδανικά γιαΠροτιμήσεις χρηστών και καταστήματα προφίλ,Προτάσεις προϊόντων τα πιο πρόσφατα στοιχεία που προβάλλονται σε έναν ιστότοπο λιανικής για την προώθηση μελλοντικών προτάσεων προϊόντων πελατών,Οι συνήθειες αγορών πελατών που εξυπηρετούν τις διαφημίσεις έχουν ως αποτέλεσμα προσαρμοσμένες διαφημίσεις, κουπόνια κ.λπ. για κάθε πελάτη σε πραγματικό χρόνο.

Έγγραφο προσανατολισμένο :

Ακολουθεί το ίδιο ζεύγος τιμών κλειδιών, αλλά είναι ημι-δομημένο όπως XML, JSON, BSON. Αυτές οι δομές θεωρούνται έγγραφα.

Βάσεις δεδομένων βάσει εγγράφων: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB.

Χρήση-θήκη

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

Προσανατολισμένη στη στήλη:

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

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

Βάσεις δεδομένων με βάση τη στήλη: HBase, Accumulo, Cassandra, Druid, Vertica.

Χρήση-θήκη

Υποστηρίζει τον τεράστιο χώρο αποθήκευσης και επιτρέπει ταχύτερη πρόσβαση εγγραφής ανάγνωσης. Αυτό καθιστά τις βάσεις δεδομένων προσανατολισμένες στη στήλη κατάλληλες για την αποθήκευση συμπεριφορών πελατών στον ιστότοπο ηλεκτρονικού εμπορίου, χρηματοοικονομικά συστήματα όπως το Google Finance και δεδομένα χρηματιστηρίου, χάρτες Google κ.λπ.

Προσανατολισμός γραφήματος:

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

Βάσεις δεδομένων βάσει γραφημάτων: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog.

Θήκη χρήσης

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

Οι HBase και Cassandra είναι οι δύο διάσημες βάσεις δεδομένων με προσανατολισμό στη στήλη. Έτσι, μιλώντας τώρα σε υψηλότερο επίπεδο, ας συγκρίνουμε και να κατανοήσουμε τις αρχιτεκτονικές και εργασιακές διαφορές μεταξύ HBase και Cassandra.

Εκπαιδευτικό HBase: HBase VS Cassandra

  • Το HBase είναι μοντελοποιημένο στο BigTable (Google) ενώ το Cassandra βασίζεται στο DynamoDB (Amazon) που αναπτύχθηκε αρχικά από το Facebook.
  • Η HBase αξιοποιεί την υποδομή Hadoop (HDFS, ZooKeeper), ενώ η Cassandra εξελίχθηκε ξεχωριστά, αλλά μπορείτε να συνδυάσετε Hadoop και Cassandra σύμφωνα με τις ανάγκες σας.
  • Το HBase έχει πολλά στοιχεία που επικοινωνούν μεταξύ τους όπως HBase HMaster, ZooKeeper, NameNode, Region Severs Ενώ η Cassandra είναι ένας τύπος ενός κόμβου, στον οποίο όλοι οι κόμβοι είναι ίσοι και εκτελεί όλες τις λειτουργίες. Οποιοσδήποτε κόμβος μπορεί να είναι ο συντονιστής που αφαιρεί το ενιαίο σημείο αποτυχίας.
  • Το HBase είναι βελτιστοποιημένο για ανάγνωση και υποστηρίζει μεμονωμένες εγγραφές, γεγονός που οδηγεί σε αυστηρή συνέπεια. Το HBase υποστηρίζει σαρώσεις βάσει εύρους, γεγονός που καθιστά τη διαδικασία σάρωσης πιο γρήγορη. Ενώ η Cassandra υποστηρίζει αναγνώσεις μιας σειράς που διατηρεί την τελική συνέπεια.
  • Η Cassandra δεν υποστηρίζει σαρώσεις σειράς βάσει εύρους, γεγονός που επιβραδύνει τη διαδικασία σάρωσης σε σύγκριση με το HBase.
  • Το HBase υποστηρίζει διαχωρισμένο διαχωρισμό, στο οποίο οι σειρές μιας οικογένειας στηλών αποθηκεύονται με σειρά RowKey, ενώ στην παραγγελία διαμερισμάτων Casandra είναι μια πρόκληση. Λόγω του RowKey, η διαδικασία σάρωσης είναι ταχύτερη στο HBase σε σύγκριση με την Cassandra.
  • Το HBase δεν υποστηρίζει εξισορρόπηση φορτίου ανάγνωσης, ένας διακομιστής περιοχής εξυπηρετεί το αίτημα ανάγνωσης και τα αντίγραφα χρησιμοποιούνται μόνο σε περίπτωση αποτυχίας. Ενώ η Cassandra υποστηρίζει την ανάγνωση φορτίου εξισορρόπησης και μπορεί να διαβάσει τα ίδια δεδομένα από διάφορους κόμβους. Αυτό μπορεί να θέσει σε κίνδυνο τη συνοχή.
  • Στο CAP (Consistency, Availability & Partition -Tolerance) το θεώρημα HBase διατηρεί τη συνέπεια και τη διαθεσιμότητα, ενώ η Cassandra επικεντρώνεται στη διαθεσιμότητα και το διαμέρισμα-ανοχή.


Τώρα ας ρίξουμε μια βαθιά βουτιά και να κατανοήσουμε τα χαρακτηριστικά του Apache HBase που το καθιστούν τόσο δημοφιλές.

Apache HBase Tutorial: Χαρακτηριστικά του HBase

  • Ατομική ανάγνωση και εγγραφή: Σε επίπεδο σειράς, το HBase παρέχει ατομική ανάγνωση και εγγραφή. Μπορεί να εξηγηθεί καθώς, κατά τη διάρκεια μιας διαδικασίας ανάγνωσης ή εγγραφής, όλες οι άλλες διαδικασίες εμποδίζονται από την εκτέλεση οποιωνδήποτε εργασιών ανάγνωσης ή εγγραφής.
  • Συνεπής διαβάζει και γράφει: Το HBase παρέχει συνεπείς αναγνώσεις και εγγραφές λόγω της παραπάνω δυνατότητας.
  • Γραμμική και αρθρωτή επεκτασιμότητα: Καθώς τα σύνολα δεδομένων κατανέμονται σε HDFS, έτσι είναι γραμμικά επεκτάσιμο σε διάφορους κόμβους, καθώς και modularly επεκτάσιμο, καθώς διαιρείται σε διάφορους κόμβους.
  • Αυτόματη και διαμορφώσιμη θραύση πινάκων: Οι πίνακες HBase κατανέμονται σε ομάδες και αυτές οι ομάδες κατανέμονται σε διάφορες περιοχές. Αυτές οι περιοχές και οι συστάδες χωρίζονται και αναδιανέμονται καθώς αυξάνονται τα δεδομένα.
  • Εύκολο στη χρήση Java API για πρόσβαση πελάτη: Παρέχει εύχρηστο API Java για πρόσβαση μέσω προγραμματισμού.
  • Thrift gateway και υπηρεσίες REST-ful Web: Υποστηρίζει επίσης Thrift και REST API για front-end εκτός Java.
  • Αποκλεισμός φίλτρων προσωρινής μνήμης και Bloom: Το HBase υποστηρίζει ένα Block Cache και Bloom Filters για βελτιστοποίηση ερωτημάτων μεγάλου όγκου.
  • Αυτόματη υποστήριξη αστοχίας: Το HBase με HDFS παρέχει WAL (Write Ahead Log) σε ομάδες που παρέχει αυτόματη υποστήριξη αστοχίας.
  • Ταξινομημένα πλήκτρα Καθώς η αναζήτηση γίνεται σε σειρά σειρών, το HBase αποθηκεύει τα πλήκτρα γραμμής με λεξικογραφική σειρά. Χρησιμοποιώντας αυτά τα ταξινομημένα πλήκτρα γραμμής και χρονική σήμανση, μπορούμε να δημιουργήσουμε ένα βελτιστοποιημένο αίτημα.

Τώρα προχωρώντας σε αυτό το σεμινάριο HBase, επιτρέψτε μου να σας πω ποιες είναι οι περιπτώσεις και τα σενάρια όπου μπορεί να χρησιμοποιηθεί το HBase και, στη συνέχεια, θα συγκρίνω HDFS και HBase.

Θα ήθελα να επιστήσω την προσοχή σας στα σενάρια στα οποία το HBase ταιριάζει καλύτερα.

Tutorial HBase: Πού μπορούμε να χρησιμοποιήσουμε το HBase;

  • Πρέπει να χρησιμοποιήσουμε το HBase όπου έχουμε μεγάλα σύνολα δεδομένων (εκατομμύρια ή δισεκατομμύρια ή σειρές και στήλες) και απαιτούμε γρήγορη, τυχαία και σε πραγματικό χρόνο, πρόσβαση για ανάγνωση και εγγραφή πάνω στα δεδομένα.
  • Τα σύνολα δεδομένων κατανέμονται σε διάφορες ομάδες και χρειαζόμαστε υψηλή επεκτασιμότητα για τη διαχείριση δεδομένων.
  • Τα δεδομένα συλλέγονται από διάφορες πηγές δεδομένων και είναι είτε ημι-δομημένα είτε μη δομημένα δεδομένα ή συνδυασμός όλων. Θα μπορούσε να αντιμετωπιστεί εύκολα με το HBase.
  • Θέλετε να αποθηκεύσετε δεδομένα προσανατολισμένα στη στήλη.
  • Έχετε πολλές εκδόσεις των συνόλων δεδομένων και πρέπει να τις αποθηκεύσετε όλες.

Πριν μεταβείτε στη μελέτη περίπτωσης Facebook messenger,επιτρέψτε μου να σας πω ποιες είναι οι διαφορές μεταξύ HBase και HDFS.

Tutorial HBase: HBase VS HDFS

Το HDFS είναι ένα σύστημα κατανεμημένων αρχείων που βασίζεται σε Java που σας επιτρέπει να αποθηκεύετε μεγάλα δεδομένα σε πολλούς κόμβους σε ένα σύμπλεγμα Hadoop. Έτσι, το HDFS είναι ένα υποκείμενο σύστημα αποθήκευσης για την αποθήκευση των δεδομένων στο κατανεμημένο περιβάλλον. Το HDFS είναι ένα σύστημα αρχείων, ενώ το HBase είναι μια βάση δεδομένων (παρόμοια με τα NTFS και MySQL).

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

  • Το HBase παρέχει χαμηλή καθυστέρηση πρόσβασης σε μικρές ποσότητες δεδομένων σε μεγάλα σύνολα δεδομένων, ενώ το HDFS παρέχει λειτουργίες υψηλού λανθάνοντος χρόνου.
  • Το HBase υποστηρίζει τυχαία ανάγνωση και εγγραφή ενώ το HDFS υποστηρίζει WORM (Γράψτε μία φορά ανάγνωση πολλές ή πολλές φορές).
  • Η πρόσβαση στο HDFS είναι βασικά ή κυρίως μέσω εργασιών MapReduce, ενώ η πρόσβαση στο HBase γίνεται μέσω εντολών κελύφους, Java API, REST, Avro ή Thrift API.

Το HDFS αποθηκεύει μεγάλα σύνολα δεδομένων σε κατανεμημένο περιβάλλον και αξιοποιεί τη μαζική επεξεργασία σε αυτά τα δεδομένα. Π.χ. θα βοηθούσε έναν ιστότοπο ηλεκτρονικού εμπορίου να αποθηκεύσει εκατομμύρια δεδομένα πελατών σε ένα κατανεμημένο περιβάλλον που αναπτύχθηκε για μεγάλο χρονικό διάστημα (μπορεί να είναι 4-5 χρόνια ή περισσότερο). Στη συνέχεια, αξιοποιεί τη μαζική επεξεργασία αυτών των δεδομένων και αναλύει τις συμπεριφορές των πελατών, το μοτίβο, τις απαιτήσεις. Στη συνέχεια, η εταιρεία θα μπορούσε να μάθει τι είδους προϊόν, αγορά πελάτη σε ποιους μήνες. Βοηθά στην αποθήκευση αρχειοθετημένων δεδομένων και στην εκτέλεση παρτίδας επεξεργασίας.

Ενώ η HBase αποθηκεύει δεδομένα με τρόπο προσανατολισμένο στη στήλη όπου κάθε στήλη αποθηκεύεται μαζί έτσι, η ανάγνωση γίνεται ταχύτερη, αξιοποιώντας την επεξεργασία σε πραγματικό χρόνο. Π.χ. σε ένα παρόμοιο περιβάλλον ηλεκτρονικού εμπορίου, αποθηκεύει εκατομμύρια δεδομένα προϊόντων. Επομένως, εάν αναζητήσετε ένα προϊόν μεταξύ εκατομμυρίων προϊόντων, βελτιστοποιεί τη διαδικασία αιτήματος και αναζήτησης, παράγοντας το αποτέλεσμα αμέσως (ή μπορείτε να το πείτε σε πραγματικό χρόνο). Η λεπτομερής Αρχιτεκτονική εξήγηση HBase , Θα καλύψω το επόμενο blog μου.

Όπως γνωρίζουμε, το HBase διανέμεται σε HDFS, οπότε ένας συνδυασμός και των δύο μας δίνει μια μεγάλη ευκαιρία να χρησιμοποιήσουμε τα οφέλη και των δύο, σε μια προσαρμοσμένη λύση, όπως θα δούμε στην παρακάτω μελέτη περίπτωσης Facebook messenger.

Tutorial HBase: Μελέτη περίπτωσης Facebook Messenger

Πλατφόρμα ανταλλαγής μηνυμάτων Facebook μετατοπίστηκε από την Apache Cassandra στο HBase τον Νοέμβριο του 2010.

Το Facebook Messenger συνδυάζει Μηνύματα, email, συνομιλία και SMS σε μια συνομιλία σε πραγματικό χρόνο. Το Facebook προσπαθούσε να δημιουργήσει μια επεκτάσιμη και ισχυρή υποδομή για να χειριστεί το σύνολο αυτών των υπηρεσιών.

Εκείνη την εποχή η υποδομή μηνυμάτων χειριζόταν πάνω από 350 εκατομμύρια χρήστες που στέλνουν πάνω από 15 δισεκατομμύρια μηνύματα από άτομο σε άτομο το μήνα. Η υπηρεσία συνομιλίας υποστηρίζει πάνω από 300 εκατομμύρια χρήστες που στέλνουν πάνω από 120 δισεκατομμύρια μηνύματα το μήνα.

ομοιότητες μεταξύ java και javascript

Παρακολουθώντας τη χρήση, ανακάλυψαν ότι, προέκυψαν δύο γενικά μοτίβα δεδομένων:

  • Ένα σύντομο σύνολο χρονικών δεδομένων που τείνει να είναι ασταθές
  • Ένα συνεχώς αυξανόμενο σύνολο δεδομένων που σπάνια αποκτά πρόσβαση

Το Facebook ήθελε να βρει μια λύση αποθήκευσης για αυτά τα δύο μοτίβα χρήσης και άρχισαν να ερευνούν για να βρουν ένα υποκατάστατο για την υπάρχουσα υποδομή του Messages.

Νωρίτερα το 2008, χρησιμοποίησαν βάση δεδομένων ανοιχτού κώδικα, δηλ. Cassandra, το οποίο είναι ένα κατάστημα κλειδιού-τιμής ενδεχόμενης συνέπειας που ήταν ήδη σε παραγωγή που εξυπηρετούσε επισκεψιμότητα για την Αναζήτηση Inbox. Οι ομάδες τους είχαν μεγάλη γνώση στη χρήση και διαχείριση μιας βάσης δεδομένων MySQL, οπότε η αλλαγή οποιασδήποτε από τις τεχνολογίες ήταν σοβαρή ανησυχία για αυτές.

Πέρασαν μερικές εβδομάδες δοκιμάζοντας διαφορετικά πλαίσια, για να αξιολογήσουν τις ομάδες των MySQL, Apache Cassandra, Apache HBase και άλλων συστημάτων. Επέλεξαν τελικά το HBase.

Καθώς η MySQL απέτυχε να διαχειριστεί αποτελεσματικά τα μεγάλα σύνολα δεδομένων, καθώς τα ευρετήρια και τα σύνολα δεδομένων μεγάλωσαν, η απόδοση υποφέρει. Βρήκαν ότι η Κασσάνδρα δεν μπορούσε να χειριστεί δύσκολο μοτίβο για να συνδυάσει τη νέα υποδομή του Messages.

Τα κύρια προβλήματα ήταν:

  • Αποθήκευση των μεγάλων σειρών συνεχώς αυξανόμενων δεδομένων από διάφορες υπηρεσίες Facebook.
  • Απαιτεί βάση δεδομένων που μπορεί να αξιοποιήσει την υψηλή επεξεργασία σε αυτήν.
  • Απαιτείται υψηλή απόδοση για την εξυπηρέτηση εκατομμυρίων αιτημάτων.
  • Διατήρηση συνοχής στην αποθήκευση και την απόδοση.

Εικόνα: Προκλήσεις που αντιμετωπίζει το Facebook messenger

Για όλα αυτά τα προβλήματα, το Facebook βρήκε μια λύση, δηλαδή το HBase. Το Facebook υιοθέτησε το HBase για την εξυπηρέτηση του Facebook messenger, συνομιλίας, email κ.λπ. λόγω των διαφόρων δυνατοτήτων του.

Το HBase διαθέτει πολύ καλή επεκτασιμότητα και απόδοση για αυτόν τον φόρτο εργασίας με ένα απλούστερο μοντέλο συνέπειας από το Cassandra. Ενώ βρήκαν το HBase ως το πιο κατάλληλο από την άποψη των απαιτήσεών τους, όπως αυτόματη εξισορρόπηση φορτίου και ανακατεύθυνση, υποστήριξη συμπίεσης, πολλαπλά θραύσματα ανά διακομιστή κ.λπ.

Το HDFS, το οποίο είναι το υποκείμενο σύστημα αρχείων που χρησιμοποιείται από την HBase, τους παρείχε επίσης αρκετές απαραίτητες λειτουργίες, όπως άθροισμα προς άκρο αθροίσματα ελέγχου, αναπαραγωγή και αυτόματη αναδιάρθρωση φορτίου.

Εικόνα: HBase ως λύση στο Facebook messenger

Καθώς υιοθέτησαν το HBase, επικεντρώθηκαν επίσης στη δέσμευση των αποτελεσμάτων πίσω στο ίδιο το HBase και άρχισαν να συνεργάζονται στενά με την κοινότητα Apache.

Δεδομένου ότι τα μηνύματα δέχονται δεδομένα από διαφορετικές πηγές, όπως SMS, συνομιλίες και μηνύματα ηλεκτρονικού ταχυδρομείου, έγραψαν έναν διακομιστή εφαρμογών για τη διαχείριση όλων των αποφάσεων για το μήνυμα ενός χρήστη. Διασυνδέεται με μεγάλο αριθμό άλλων υπηρεσιών. Τα συνημμένα αποθηκεύονται σε Haystack (το οποίο λειτουργεί στο HBase). Έγραψαν επίσης μια υπηρεσία ανακάλυψης χρηστών πάνω από το Apache ZooKeeper που μιλούσε με άλλες υπηρεσίες υποδομής για σχέσεις φίλων, επαλήθευση λογαριασμού email, αποφάσεις παράδοσης και αποφάσεις απορρήτου.

Η ομάδα του Facebook πέρασε πολύ χρόνο επιβεβαιώνοντας ότι κάθε μία από αυτές τις υπηρεσίες είναι ισχυρή, αξιόπιστη και παρέχει καλή απόδοση για να χειριστεί ένα σύστημα ανταλλαγής μηνυμάτων σε πραγματικό χρόνο.

Ελπίζω ότι αυτό το ιστολόγιο εκμάθησης HBase είναι ενημερωτικό και σας άρεσε. Σε αυτό το blog, γνωρίσατε τα βασικά του HBase και των χαρακτηριστικών του.Στο επόμενο blog μου του , Θα εξηγήσω το αρχιτεκτονική του HBase και τη λειτουργία του HBase που το καθιστά δημοφιλές για γρήγορη και τυχαία ανάγνωση / εγγραφή.

Τώρα που έχετε κατανοήσει τα βασικά του HBase, ρίξτε μια ματιά στο από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το πρόγραμμα εκπαίδευσης Edureka Big Data Hadoop Certification βοηθά τους μαθητές να γίνουν ειδικοί σε HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume και Sqoop χρησιμοποιώντας περιπτώσεις χρήσης σε πραγματικό χρόνο σε τομείς λιανικής, κοινωνικής δικτύωσης, αεροπορίας, τουρισμού, χρηματοοικονομικών

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