Εντολές HBase Shell με παραδείγματα
⚡ Έξυπνη Σύνοψη
Οι εντολές κελύφους HBase σάς επιτρέπουν να διαχειρίζεστε πίνακες και δεδομένα απευθείας από μια διαδραστική προτροπή, ομαδοποιημένες σε γενικές εντολές, εντολές διαχείρισης πινάκων όπως δημιουργία και απόθεση, εντολές χειρισμού δεδομένων όπως τοποθέτηση και λήψη, και εντολές αναπαραγωγής συστάδων.

Πώς να αλληλεπιδράσετε με το HBase χρησιμοποιώντας εντολές Shell και Java API
Μετά από μια επιτυχημένη εγκατάσταση του HBase πάνω από το Hadoop, λαμβάνουμε ένα διαδραστικό κέλυφος για την εκτέλεση διαφόρων εντολών και αρκετών λειτουργιών. Χρησιμοποιώντας αυτές τις εντολές, μπορούμε να εκτελέσουμε πολλαπλές λειτουργίες σε πίνακες δεδομένων που προσφέρουν καλύτερη αποτελεσματικότητα αποθήκευσης δεδομένων και ευέλικτη αλληλεπίδραση για τον πελάτη.
Μπορούμε να αλληλεπιδράσουμε με το HBase με δύο τρόπους:
- Λειτουργία διαδραστικού κελύφους HBase και
- Μέσω Java API.
Στο HBase, η λειτουργία διαδραστικού κελύφους χρησιμοποιείται για την αλληλεπίδραση με το HBase για λειτουργίες πινάκων, διαχείριση πινάκων και μοντελοποίηση δεδομένων. Χρησιμοποιώντας το Java μοντέλο API, μπορούμε να εκτελέσουμε όλους τους τύπους λειτουργιών πινάκων και δεδομένων στο HBase. Μπορούμε να αλληλεπιδράσουμε με το HBase χρησιμοποιώντας και τις δύο αυτές μεθόδους. Η μόνη διαφορά μεταξύ των δύο είναι ότι το Java Χρήσεις API Java κώδικα για σύνδεση με το HBase, ενώ η λειτουργία shell χρησιμοποιεί εντολές shell για σύνδεση με το HBase.
Γρήγορη ανασκόπηση του HBase πριν προχωρήσουμε:
- Χρήσεις HBase Hadoop αρχεία ως σύστημα αποθήκευσης για την αποθήκευση μεγάλων ποσοτήτων δεδομένων. Το HBase αποτελείται από Κύριους Διακομιστές και Διακομιστές Περιοχής.
- Τα δεδομένα που θα αποθηκευτούν στο HBase θα έχουν τη μορφή περιοχών. Επιπλέον, αυτές οι περιοχές θα χωριστούν και θα αποθηκευτούν σε πολλαπλούς διακομιστές περιοχών.
- Αυτές οι εντολές κελύφους επιτρέπουν στον προγραμματιστή να ορίσει σχήματα πινάκων και λειτουργίες δεδομένων χρησιμοποιώντας πλήρη αλληλεπίδραση με τη λειτουργία κελύφους.
- Όποια εντολή κι αν χρησιμοποιήσουμε, θα αντικατοπτρίζεται στο μοντέλο δεδομένων HBase.
- Χρησιμοποιούμε εντολές κελύφους HBase σε διερμηνείς σεναρίων λειτουργικού συστήματος όπως το κέλυφος Bash.
- Το κέλυφος Bash είναι ο προεπιλεγμένος διερμηνέας εντολών για τα περισσότερα Linux και διανομές λειτουργικού συστήματος Unix.
- Οι προηγμένες εκδόσεις του HBase παρέχουν εντολές shell με αντικειμενοστρεφείς αναφορές τύπου JRuby για πίνακες.
- Οι μεταβλητές αναφοράς πίνακα μπορούν να χρησιμοποιηθούν για την εκτέλεση λειτουργιών δεδομένων σε λειτουργία κελύφους HBase.
Για παράδειγμα:
- Σε αυτό το σεμινάριο, δημιουργήσαμε έναν πίνακα στον οποίο το 'education' αντιπροσωπεύει το όνομα του πίνακα και αντιστοιχεί στο όνομα της στήλης "guru99".
- Σε ορισμένες εντολές, το ίδιο το "guru99" αντιπροσωπεύει ένα όνομα πίνακα.
Γενικές εντολές
Στο HBase, οι γενικές εντολές κατηγοριοποιούνται στις ακόλουθες εντολές:
- Κατάσταση
- Έκδοση
- Table_help (σάρωση, απόθεση, λήψη, τοποθέτηση, απενεργοποίηση, κ.λπ.)
- Ποιός είμαι
Για να εισέλθουμε στην εντολή shell HBase, πρώτα απ 'όλα, πρέπει να εκτελέσουμε τον κώδικα όπως αναφέρεται παρακάτω.
hbase Shell
Μόλις εισέλθουμε στο κέλυφος HBase, μπορούμε να εκτελέσουμε όλες τις εντολές του κελύφους που αναφέρονται παρακάτω. Με τη βοήθεια αυτών των εντολών, μπορούμε να εκτελέσουμε όλους τους τύπους λειτουργιών πίνακα στη λειτουργία κελύφους HBase. Η διαδραστική προτροπή του κελύφους εμφανίζεται όπως φαίνεται παρακάτω:
Ας δούμε όλες αυτές τις εντολές και τη χρήση τους μία προς μία με ένα παράδειγμα.
Κατάσταση
Syntax:status
Αυτή η εντολή θα δώσει λεπτομέρειες σχετικά με την κατάσταση του συστήματος, όπως τον αριθμό των διακομιστών που υπάρχουν στο σύμπλεγμα, τον αριθμό των ενεργών διακομιστών και τη μέση τιμή φορτίου. Μπορείτε επίσης να περάσετε συγκεκριμένες παραμέτρους ανάλογα με το πόσο λεπτομερή είναι η κατάσταση που θέλετε να γνωρίζετε για το σύστημα. Οι παράμετροι μπορούν να είναι «σύνοψη», «απλή» ή «λεπτομερής». Η προεπιλεγμένη παράμετρος που παρέχεται είναι «σύνοψη».
Παρακάτω, έχουμε δείξει πώς μπορείτε να περάσετε διαφορετικές παραμέτρους στην εντολή status. Αν παρατηρήσουμε το παρακάτω στιγμιότυπο οθόνης, θα έχουμε μια καλύτερη ιδέα.
hbase(main):001:0>status hbase(main):002:0>status 'simple' hbase(main):003:0>status 'summary' hbase(main):004:0> status 'detailed'
Η έξοδος κατάστασης εμφανίζεται παρακάτω:
Όταν εκτελούμε αυτήν την εντολή κατάστασης, παρέχει πληροφορίες σχετικά με τον αριθμό των υπαρχόντων διακομιστών, τους νεκρούς διακομιστές και το μέσο φορτίο του διακομιστή. Εδώ, το στιγμιότυπο οθόνης δείχνει πληροφορίες όπως 1 ενεργό διακομιστή, 1 νεκρό διακομιστή και μέσο φορτίο 7.0000.
Έκδοση
Syntax: version
Η έξοδος της έκδοσης φαίνεται παρακάτω:
- Αυτή η εντολή θα εμφανίσει την τρέχουσα έκδοση HBase που χρησιμοποιείται σε λειτουργία εντολών.
- Αν εκτελέσετε την εντολή version, θα δώσει την έξοδο όπως φαίνεται παραπάνω.
Βοήθεια πίνακα
Syntax:table_help
Η έξοδος table_help φαίνεται παρακάτω:
Αυτή η εντολή καθοδηγεί:
- Τι είναι οι εντολές με αναφορά σε πίνακες και πώς να τις χρησιμοποιήσετε.
- Θα παρέχει διαφορετικές χρήσεις εντολών κελύφους HBase και τις συντάξεις τους.
- Εδώ, στο παραπάνω στιγμιότυπο οθόνης, φαίνεται η σύνταξη για τις εντολές "create" και "get_table" με τη χρήση τους. Μπορούμε να χειριστούμε τον πίνακα μέσω αυτών των εντολών μόλις δημιουργηθεί ο πίνακας στο HBase.
- Θα δώσει εντολές χειρισμού πίνακα όπως put, get και όλες τις άλλες πληροφορίες εντολών.
whoami
Syntax: Whoami
Η έξοδος whoami φαίνεται παρακάτω:
Αυτή η εντολή "whoami" χρησιμοποιείται για την επιστροφή των πληροφοριών του τρέχοντος χρήστη HBase από το σύμπλεγμα HBase. Θα παρέχει πληροφορίες όπως:
- Ομάδες που υπάρχουν στο HBase.
- Οι πληροφορίες χρήστη. Για παράδειγμα, σε αυτήν την περίπτωση, το "hduser" αντιπροσωπεύει το όνομα χρήστη όπως φαίνεται στο στιγμιότυπο οθόνης.
TTL (Time To Live) – Ιδιότητα
Στο HBase, οι οικογένειες στηλών μπορούν να οριστούν σε χρονικές τιμές σε δευτερόλεπτα χρησιμοποιώντας TTL. Το HBase θα διαγράψει αυτόματα τις γραμμές μόλις φτάσει ο χρόνος λήξης. Αυτό το χαρακτηριστικό ισχύει για όλες τις εκδόσεις μιας γραμμής, ακόμη και για την τρέχουσα έκδοση.
Ο χρόνος TTL που κωδικοποιείται στο HBase για τη γραμμή καθορίζεται σε UTC. Αυτό το χαρακτηριστικό χρησιμοποιείται με εντολές διαχείρισης πινάκων. Παρακάτω παρατίθενται σημαντικές διαφορές μεταξύ του χειρισμού TTL και των TTL οικογένειας στηλών:
- Τα TTL κελιών εκφράζονται σε μονάδες χιλιοστών του δευτερολέπτου αντί για δευτερόλεπτα.
- Ένα TTL κελιού δεν μπορεί να επεκτείνει την αποτελεσματική διάρκεια ζωής ενός κελιού πέρα από μια ρύθμιση TTL σε επίπεδο Οικογένειας Στηλών.
Εντολές διαχείρισης πινάκων
Αυτές οι εντολές θα επιτρέψουν στους προγραμματιστές να δημιουργούν πίνακες και σχήματα πινάκων με οικογένειες γραμμών και στηλών. Οι ακόλουθες είναι οι εντολές Διαχείρισης Πινάκων:
- δημιουργώ
- Λιστα
- Περιγράφω
- Απενεργοποίηση
- Απενεργοποίηση όλων
- Ενεργοποίηση
- Ενεργοποίηση όλων
- Πτώση
- Drop_all
- Εμφάνιση_φίλτρων
- Ηλικία
- Alter_status
Ας εξετάσουμε διάφορες χρήσεις εντολών στο HBase με ένα παράδειγμα.
δημιουργώ
Syntax: create <tablename>, <columnfamilyname>
Παράδειγμα:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
Το αποτέλεσμα της εντολής δημιουργίας φαίνεται παρακάτω:
Το παραπάνω παράδειγμα εξηγεί πώς να δημιουργήσετε έναν πίνακα στο HBase με το καθορισμένο όνομα που δίνεται σύμφωνα με τις προδιαγραφές για κάθε οικογένεια στηλών. Εκτός από αυτό, μπορούμε επίσης να περάσουμε σε αυτόν ορισμένα χαρακτηριστικά table-scope. Για να ελέγξουμε εάν ο πίνακας 'education' έχει δημιουργηθεί ή όχι, χρησιμοποιούμε την εντολή "list" παρακάτω. Δείτε επίσης δημιουργία πινάκων HBase με Java και κέλυφος.
Λιστα
Syntax:list
Η έξοδος της λίστας φαίνεται παρακάτω:
- Η εντολή "list" θα εμφανίσει όλους τους πίνακες που υπάρχουν ή δημιουργούνται στο HBase.
- Η έξοδος που εμφανίζεται στο παραπάνω στιγμιότυπο οθόνης εμφανίζει αυτήν τη στιγμή τους υπάρχοντες πίνακες στο HBase.
- Εδώ, σε αυτό το στιγμιότυπο οθόνης, φαίνεται ότι υπάρχουν συνολικά 8 πίνακες μέσα στο HBase.
- Μπορούμε να φιλτράρουμε τις τιμές εξόδου από τους πίνακες διαβιβάζοντας προαιρετικές παραμέτρους κανονικής έκφρασης.
Περιγράφω
Syntax:describe <table name>
hbase(main):010:0>describe 'education'
Η περιγραφή της εξόδου φαίνεται παρακάτω:
Αυτή η εντολή περιγράφει τον πίνακα με το όνομα.
- Θα δώσει περισσότερες πληροφορίες σχετικά με τις οικογένειες στηλών που υπάρχουν στον προαναφερθέντα πίνακα.
- Στην περίπτωσή μας, δίνει την περιγραφή του πίνακα «εκπαίδευση».
- Θα παρέχει πληροφορίες σχετικά με το όνομα του πίνακα με τις οικογένειες στηλών, τα σχετικά φίλτρα, τις εκδόσεις και μερικές ακόμη λεπτομέρειες.
απενεργοποίηση
Syntax: disable <tablename>
hbase(main):011:0>disable 'education'
Η έξοδος απενεργοποίησης εμφανίζεται παρακάτω:
- Αυτή η εντολή θα ξεκινήσει την απενεργοποίηση του επώνυμου πίνακα.
- Εάν ένας πίνακας χρειάζεται να διαγραφεί ή να αφαιρεθεί, πρέπει πρώτα να απενεργοποιηθεί.
Εδώ, στο παραπάνω στιγμιότυπο οθόνης, απενεργοποιούμε την εκπαίδευση πίνακα.
απενεργοποίηση όλων
Syntax: disable_all<"matching regex"
- Αυτή η εντολή θα απενεργοποιήσει όλους τους πίνακες που ταιριάζουν με το δεδομένο regex.
- Η υλοποίηση είναι η ίδια με την εντολή drop (εκτός από την προσθήκη ενός regex για αντιστοίχιση).
- Μόλις απενεργοποιηθεί ο πίνακας, ο χρήστης μπορεί να τον διαγράψει από το HBase.
- Πριν από τη διαγραφή ή την απόθεσηping ένας πίνακας, θα πρέπει πρώτα να απενεργοποιηθεί.
Ενεργοποίηση
Syntax: enable <tablename>
hbase(main):012:0>enable 'education'
Η έξοδος ενεργοποίησης εμφανίζεται παρακάτω:
- Αυτή η εντολή θα ξεκινήσει την ενεργοποίηση του επώνυμου πίνακα.
- Όποιος πίνακας είναι απενεργοποιημένος, για να τον επαναφέρουμε στην προηγούμενη κατάστασή του, χρησιμοποιούμε αυτήν την εντολή.
- Εάν ένας πίνακας είναι απενεργοποιημένος εξαρχής και δεν έχει διαγραφεί ή αφαιρεθεί, και εάν θέλουμε να επαναχρησιμοποιήσουμε τον απενεργοποιημένο πίνακα, τότε πρέπει να τον ενεργοποιήσουμε χρησιμοποιώντας αυτήν την εντολή.
- Εδώ, στο παραπάνω στιγμιότυπο οθόνης, ενεργοποιούμε τον πίνακα «εκπαίδευση».
εμφάνιση_φίλτρων
Syntax: show_filters
Η έξοδος show_filters εμφανίζεται παρακάτω:
Αυτή η εντολή εμφανίζει όλα τα φίλτρα που υπάρχουν στο HBase, όπως ColumnPrefixFilter, TimestampsFilter, PageFilter, FamilyFilter, κ.λπ.
πτώση
Syntax:drop <table name>
hbase(main):017:0>drop 'education'
Η έξοδος της πτώσης φαίνεται παρακάτω:
Πρέπει να προσέξουμε τα παρακάτω σημεία για την εντολή drop:
- Για να διαγράψουμε τον πίνακα που υπάρχει στο HBase, πρέπει πρώτα να τον απενεργοποιήσουμε.
- Για να αφαιρέσουμε τον πίνακα που υπάρχει στο HBase, πρέπει πρώτα να τον απενεργοποιήσουμε.
- Έτσι, για να διαγράψετε ή να απορρίψετε έναν πίνακα, ο πίνακας θα πρέπει πρώτα να απενεργοποιηθεί χρησιμοποιώντας την εντολή disable.
- Εδώ, στο παραπάνω στιγμιότυπο οθόνης, είμαστεping ο πίνακας «εκπαίδευση».
- Πριν από την εκτέλεση αυτής της εντολής, είναι απαραίτητο να απενεργοποιήσετε τον πίνακα «education».
drop_all
Syntax: drop_all<"regex">
- Αυτή η εντολή θα αφαιρέσει όλους τους πίνακες που ταιριάζουν με το δεδομένο regex.
- Οι πίνακες πρέπει πρώτα να απενεργοποιηθούν, πριν από την εκτέλεση αυτής της εντολής, χρησιμοποιώντας την εντολή disable_all.
- Οι πίνακες με εκφράσεις που ταιριάζουν με regex θα αφαιρεθούν από το HBase.
είναι ενεργοποιημένο
Syntax: is_enabled 'education'
Αυτή η εντολή θα επαληθεύσει εάν ο επώνυμος πίνακας είναι ενεργοποιημένος ή όχι. Συνήθως, υπάρχει μια μικρή σύγχυση μεταξύ των ενεργειών της εντολής "enable" και "is_enabled", την οποία διευκρινίζουμε εδώ:
- Ας υποθέσουμε ότι ένας πίνακας είναι απενεργοποιημένος. Για να χρησιμοποιήσουμε αυτόν τον πίνακα, πρέπει να τον ενεργοποιήσουμε χρησιμοποιώντας την εντολή enable.
- Η εντολή is_enabled θα ελέγξει εάν ο πίνακας είναι ενεργοποιημένος ή όχι.
μεταβάλλουν
Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5
Αυτή η εντολή αλλάζει το σχήμα οικογένειας στηλών. Για να καταλάβετε τι ακριβώς κάνει, το έχουμε εξηγήσει εδώ με ένα παράδειγμα.
Παραδείγματα: Σε αυτά τα παραδείγματα, θα εκτελέσουμε λειτουργίες εντολών alter σε πίνακες και στις στήλες τους. Θα εκτελέσουμε λειτουργίες όπως:
- Αλλαγή ονομάτων οικογενειών μίας και πολλαπλών στηλών.
- Διαγραφή ονομάτων οικογένειας στηλών από έναν πίνακα.
- Αρκετές άλλες λειτουργίες που χρησιμοποιούν χαρακτηριστικά εμβέλειας με έναν πίνακα.
Για να αλλάξετε ή να προσθέσετε την οικογένεια στηλών 'guru99_1' στον πίνακα 'education' από την τρέχουσα τιμή για να διατηρήσετε έως και 5 ΕΚΔΟΣΕΙΣ κελιών. Εδώ, το "education" είναι το όνομα του πίνακα που δημιουργήθηκε προηγουμένως με το όνομα στήλης "guru99". Με τη βοήθεια μιας εντολής alter, προσπαθούμε να αλλάξουμε το σχήμα οικογένειας στηλών σε guru99_1 από guru99, όπως φαίνεται παρακάτω:
hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
Μπορείτε επίσης να χρησιμοποιήσετε την εντολή alter σε διάφορες οικογένειες στηλών. Για παράδειγμα, θα ορίσουμε δύο νέες στήλες για τον υπάρχοντα πίνακά μας "education", όπως φαίνεται παρακάτω:
hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
- Μπορούμε να αλλάξουμε περισσότερα από ένα σχήματα στηλών ταυτόχρονα χρησιμοποιώντας αυτήν την εντολή.
- Τα guru99_2 και guru99_3, όπως φαίνεται στο παραπάνω στιγμιότυπο οθόνης, είναι τα δύο νέα ονόματα στηλών που έχουμε ορίσει για την εκπαίδευση πινάκων.
- Μπορούμε να δούμε τον τρόπο χρήσης αυτής της εντολής στο προηγούμενο στιγμιότυπο οθόνης.
Σε αυτό το βήμα, θα δούμε πώς να διαγράψετε μια οικογένεια στηλών από τον πίνακα. Για να διαγράψετε την οικογένεια στηλών 'f1' στον πίνακα 'education', χρησιμοποιήστε μία από τις παρακάτω εντολές. Το αποτέλεσμα εμφανίζεται στο παρακάτω στιγμιότυπο οθόνης:
hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'
Σε αυτήν την εντολή, προσπαθούμε να διαγράψουμε τον χώρο στηλών με όνομα guru99_1 που δημιουργήσαμε προηγουμένως στο πρώτο βήμα. Όπως φαίνεται στα παρακάτω στιγμιότυπα οθόνης, εμφανίζονται δύο βήματα: πώς να αλλάξετε ένα χαρακτηριστικό εμβέλειας πίνακα και πώς να καταργήσετε το χαρακτηριστικό εμβέλειας πίνακα.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'
Βήμα 1) Μπορείτε να αλλάξετε τα χαρακτηριστικά του table-scope όπως MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, κ.λπ. Αυτά μπορούν να τοποθετηθούν στο τέλος. Για παράδειγμα, για να αλλάξουμε το μέγιστο μέγεθος μιας περιοχής σε 128MB ή σε οποιαδήποτε άλλη τιμή μνήμης, χρησιμοποιούμε αυτήν την εντολή.
Χρήση:
- Μπορούμε να χρησιμοποιήσουμε το MAX_FILESIZE με τον πίνακα ως χαρακτηριστικό scope, όπως παραπάνω.
- Ο αριθμός που αναπαρίσταται σε MAX_FILESIZE αναφέρεται στη μνήμη σε byte.
ΣΗΜΕΙΩΣΗ: Το εύρος του πίνακα MAX_FILESIZE θα καθοριστεί από ορισμένα χαρακτηριστικά που υπάρχουν στο HBase. Το MAX_FILESIZE εμπίπτει επίσης στα χαρακτηριστικά του εύρους του πίνακα.
Βήμα 2) Μπορείτε επίσης να καταργήσετε ένα χαρακτηριστικό table-scope χρησιμοποιώντας τη μέθοδο table_att_unset. Δείτε την παρακάτω εντολή:
alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
- Το παραπάνω στιγμιότυπο οθόνης δείχνει το τροποποιημένο όνομα πίνακα με τα χαρακτηριστικά εμβέλειας.
- Η μέθοδος table_att_unset χρησιμοποιείται για την απενεργοποίηση των χαρακτηριστικών που υπάρχουν στον πίνακα.
- Στη δεύτερη περίπτωση, απενεργοποιούμε το χαρακτηριστικό MAX_FILESIZE.
- Μετά την εκτέλεση της εντολής, απλώς θα απενεργοποιήσει το χαρακτηριστικό MAX_FILESIZE από τον πίνακα "education".
alter_status
Syntax: alter_status 'education'
Η έξοδος alter_status εμφανίζεται παρακάτω:
- Μέσω αυτής της εντολής, μπορείτε να λάβετε την κατάσταση της εντολής alter.
- Υποδεικνύει τον αριθμό των περιοχών του πίνακα που έχουν λάβει το ενημερωμένο σχήμα. Μεταβιβάζετε το όνομα του πίνακα.
- Εδώ, στο παραπάνω στιγμιότυπο οθόνης, δείχνει ότι ενημερώθηκε το 1/1 των περιοχών. Αυτό σημαίνει ότι έχει ενημερωθεί μία περιοχή. Μετά από αυτό, εάν είναι επιτυχής, θα εμφανιστεί το σχόλιο "ολοκληρώθηκε".
Εντολές χειρισμού δεδομένων
Αυτές οι εντολές λειτουργούν στον πίνακα για χειρισμούς δεδομένων, όπως η εισαγωγή δεδομένων σε έναν πίνακα, η ανάκτηση δεδομένων από έναν πίνακα και η διαγραφή σχήματος κ.λπ. Οι εντολές που εμπίπτουν σε αυτές είναι:
- Κόμης
- Βάζω
- ΕΠΙΚΟΙΝΩΝΗΣΤΕ
- Διαγραφή
- Διαγραφή όλων
- Κολοβός
- σάρωση
Ας εξετάσουμε αυτές τις χρήσεις εντολών με ένα παράδειγμα. Δείτε επίσης ανάγνωση και εγγραφή δεδομένων HBase.
Κόμης
Syntax: count <'tablename'>, CACHE =>1000
- Η εντολή θα ανακτήσει τον αριθμό των γραμμών σε έναν πίνακα. Η τιμή που επιστρέφεται από αυτήν την εντολή είναι ο αριθμός των γραμμών.
- Ο τρέχων αριθμός εμφανίζεται ανά 1000 γραμμές από προεπιλογή.
- Το διάστημα μέτρησης μπορεί να καθοριστεί προαιρετικά.
- Το προεπιλεγμένο μέγεθος της προσωρινής μνήμης είναι 10 γραμμές.
- Η εντολή count θα λειτουργήσει γρήγορα όταν έχει ρυθμιστεί με τη σωστή προσωρινή μνήμη.
Παράδειγμα:
hbase> count 'guru99', CACHE=>1000
Η έξοδος μέτρησης εμφανίζεται παρακάτω:
Αυτό το παράδειγμα μέτρησης ανακτά 1000 γραμμές κάθε φορά από τον πίνακα "guru99". Μπορούμε να ορίσουμε χαμηλότερη τιμή στην προσωρινή μνήμη εάν ο πίνακας αποτελείται από περισσότερες γραμμές. Αλλά από προεπιλογή, θα ανακτά μία γραμμή κάθε φορά.
hbase>count 'guru99', INTERVAL => 100000 hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000
Ας υποθέσουμε ότι ο πίνακας "guru99" έχει κάποια αναφορά πίνακα, όπως ας πούμε το g. Μπορούμε επίσης να εκτελέσουμε την εντολή count στην αναφορά πίνακα, όπως παρακάτω:
hbase>g.count INTERVAL=>100000 hbase>g.count INTERVAL=>10, CACHE=>1000
Βάζω
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Αυτή η εντολή χρησιμοποιείται για τα ακόλουθα πράγματα:
- Θα βάλει μια «τιμή» κελιού σε έναν καθορισμένο ή καθορισμένο πίνακα ή γραμμή ή στήλη.
- Προαιρετικά, θα συντονίσει μια χρονική σήμανση.
Παράδειγμα: Εδώ, τοποθετούμε τιμές στον πίνακα "guru99" κάτω από τη γραμμή r1 και τη στήλη c1.
hbase> put 'guru99', 'r1', 'c1', 'value', 10
Έχουμε τοποθετήσει τρεις τιμές, 10, 15 και 30, στον πίνακα "guru99", όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.
Ας υποθέσουμε ότι ο πίνακας "guru99" έχει κάποια αναφορά πίνακα, όπως ας πούμε το g. Μπορούμε επίσης να εκτελέσουμε την εντολή στην αναφορά πίνακα, όπως:
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
Η έξοδος θα είναι όπως φαίνεται στο παραπάνω στιγμιότυπο οθόνης μετά την τοποθέτηση τιμών στο "guru99". Για να ελέγξουμε αν η τιμή εισόδου έχει εισαχθεί σωστά στον πίνακα, χρησιμοποιούμε την εντολή "scan". Στο παρακάτω στιγμιότυπο οθόνης, μπορούμε να δούμε ότι οι τιμές έχουν εισαχθεί σωστά.
Code Απόσπασμα: Για εξάσκηση
create 'guru99', {NAME=>'Edu', VERSIONS=>213423443} put 'guru99', 'r1', 'Edu:c1', 'value', 10 put 'guru99', 'r1', 'Edu:c1', 'value', 15 put 'guru99', 'r1', 'Edu:c1', 'value', 30
Από το απόσπασμα κώδικα, κάνουμε τα εξής:
- Εδώ, δημιουργούμε έναν πίνακα με όνομα 'guru99' με όνομα στήλης "Edu".
- Χρησιμοποιώντας την εντολή "put", τοποθετούμε τιμές στο όνομα γραμμής r1 στη στήλη "Edu" στον πίνακα "guru99".
ΕΠΙΚΟΙΝΩΝΗΣΤΕ
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Εδώ, περιλαμβάνουν ΧΡΟΝΟΜΕΤΡΙΚΟ ΕΥΡΟΣ, ΧΡΟΝΟΜΕΤΡΙΚΟ ΕΥΡΟΣ, ΕΚΔΟΣΕΙΣ και ΦΙΛΤΡΑ. Χρησιμοποιώντας αυτήν την εντολή, θα λάβετε τα περιεχόμενα μιας γραμμής ή κελιού που υπάρχουν στον πίνακα. Επιπλέον, μπορείτε επίσης να προσθέσετε επιπλέον παραμέτρους σε αυτόν, όπως ΧΡΟΝΟΜΕΤΡΙΚΟ ΕΥΡΟΣ, ΧΡΟΝΟΜΕΤΡΙΚΟ ΕΥΡΟΣ, ΕΚΔΟΣΕΙΣ, ΦΙΛΤΡΑ κ.λπ., για να λάβετε το περιεχόμενο μιας συγκεκριμένης γραμμής ή κελιού.
Η έξοδος get παρακάτω επιστρέφει τιμές στη σειρά r1 και στη στήλη c1:
Παραδείγματα: -
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
Για τον πίνακα "guru99", οι τιμές της σειράς r1 και της στήλης c1 θα εμφανιστούν χρησιμοποιώντας αυτήν την εντολή, όπως φαίνεται στο παραπάνω στιγμιότυπο οθόνης.
hbase> get 'guru99', 'r1'
Για τον πίνακα "guru99", οι τιμές της γραμμής r1 θα εμφανιστούν χρησιμοποιώντας αυτήν την εντολή.
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
Για τον πίνακα "guru99", οι τιμές της γραμμής r1 στο χρονικό εύρος ts1 έως ts2 θα εμφανιστούν χρησιμοποιώντας αυτήν την εντολή.
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
Για τον πίνακα "guru99", οι τιμές της σειράς r1 και των οικογενειών στηλών c1, c2 και c3 θα εμφανιστούν χρησιμοποιώντας αυτήν την εντολή.
Διαγραφή
Syntax:delete <'tablename'>,<'row name'>,<'column name'>
- Αυτή η εντολή θα διαγράψει την τιμή κελιού σε έναν καθορισμένο πίνακα γραμμής ή στήλης.
- Η διαγραφή πρέπει και θα πρέπει να ταιριάζουν ακριβώς με τις συντεταγμένες του διαγραμμένου κελιού.
- Κατά τη σάρωση, ένα κελί διαγραφής αποκρύπτει παλαιότερες εκδόσεις τιμών.
Παράδειγμα: Η παρακάτω εντολή διαγραφής αφαιρεί τα κελιά r1, c1 από τον πίνακα guru99:
hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
- Η παραπάνω εκτέλεση θα διαγράψει τη γραμμή r1 από την οικογένεια στηλών c1 στον πίνακα "guru99".
- Ας υποθέσουμε ότι ο πίνακας "guru99" έχει κάποια αναφορά πίνακα, όπως ας πούμε το g.
- Μπορούμε επίσης να εκτελέσουμε την εντολή στην αναφορά πίνακα, όπως hbase> g.delete 'guru99', 'r1', 'c1′”.
διαγραφή όλων
Syntax: deleteall <'tablename'>, <'rowname'>
- Αυτή η εντολή θα διαγράψει όλα τα κελιά σε μια δεδομένη γραμμή.
- Μπορούμε προαιρετικά να ορίσουμε ονόματα στηλών και μια χρονική σήμανση στη σύνταξη.
Παράδειγμα:- Η εντολή deleteall παρακάτω διαγράφει κάθε κελί στη γραμμή r1:
hbase>deleteall 'guru99', 'r1', 'c1'
Αυτό θα διαγράψει όλες τις γραμμές και τις στήλες που υπάρχουν στον πίνακα. Προαιρετικά, μπορούμε να αναφέρουμε ονόματα στηλών σε αυτόν.
Κολοβός
Syntax: truncate <tablename>
Η εντολή truncate παρακάτω αδειάζει τον πίνακα ενώ το keeping το σχήμά του:
Μετά την περικοπή ενός πίνακα HBase, το σχήμα θα υπάρχει αλλά όχι οι εγγραφές. Αυτή η εντολή εκτελεί 3 λειτουργίες, οι οποίες παρατίθενται παρακάτω:
- Απενεργοποιεί τον πίνακα εάν υπάρχει ήδη.
- Αποσύρει τον πίνακα εάν υπάρχει ήδη.
- Αναδημιουργεί τον αναφερόμενο πίνακα.
σάρωση
Syntax: scan <'tablename'>, {Optional parameters}
Αυτή η εντολή σαρώνει ολόκληρο τον πίνακα και εμφανίζει τα περιεχόμενά του.
- Μπορούμε να περάσουμε πολλές προαιρετικές προδιαγραφές σε αυτήν την εντολή σάρωσης για να λάβουμε περισσότερες πληροφορίες σχετικά με τους πίνακες που υπάρχουν στο σύστημα.
- Οι προδιαγραφές του σαρωτή μπορεί να περιλαμβάνουν ένα ή περισσότερα από τα ακόλουθα χαρακτηριστικά.
- Αυτά είναι τα TIMERANGE (ΧΡΟΝΟΜΕΤΡΟ), FILTER (ΦΙΛΤΡΟ), TIMESTAMP (ΧΡΟΝΙΚΗ ΣΦΡΑΓΙΔΑ), LIMIT (ΟΡΙΟ), MAX LENGTH (ΜΕΓΙΣΤΟ ΜΗΚΟΣ), COLUMNS (ΣΤΗΛΕΣ), CACHE (ΠΡΟΣΟΧΗ), STARTROW (ΕΝΑΡΞΗ ΡΟΗΣ) και STOPROW (ΔΙΑΚΟΠΗ).
scan 'guru99'
Το αποτέλεσμα της σάρωσης εμφανίζεται παρακάτω:
Στο παραπάνω στιγμιότυπο οθόνης:
- Εμφανίζει τον πίνακα "guru99" με το όνομα και τις τιμές της στήλης.
- Αποτελείται από τρεις τιμές γραμμών, r1, r2 και r3, για την τιμή c1 της μίας στήλης.
- Εμφανίζει τις τιμές που σχετίζονται με τις γραμμές.
Παραδείγματα:- Οι διαφορετικές χρήσεις της εντολής σάρωσης:
| εντολή | Χρήση |
|---|---|
| σάρωση '.META.', {COLUMNS => 'info:regioninfo'} | Εμφανίζει όλες τις πληροφορίες μεταδεδομένων που σχετίζονται με στήλες που υπάρχουν στους πίνακες στο HBase. |
| σάρωση 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} | Εμφανίζει τα περιεχόμενα του πίνακα guru99 με τις οικογένειες στηλών c1 και c2, περιορίζοντας τις τιμές σε 10. |
| σάρωση 'guru99', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]} | Εμφανίζει τα περιεχόμενα του guru99 με το όνομα στήλης c1 με τις τιμές που υπάρχουν μεταξύ της αναφερόμενης τιμής του χαρακτηριστικού χρονικού εύρους. |
| σάρωση 'guru99', {RAW => true, VERSIONS =>10} | Σε αυτήν την εντολή, η εντολή RAW=> true παρέχει μια προηγμένη λειτουργία, όπως την εμφάνιση όλων των τιμών κελιών που υπάρχουν στον πίνακα guru99. |
Code Παράδειγμα: Αρχικά, δημιουργήστε έναν πίνακα και τοποθετήστε τιμές σε αυτόν. Η εισαγωγή εμφανίζεται στο παρακάτω στιγμιότυπο οθόνης:
create 'guru99', {NAME=>'e', VERSIONS=>2147483647} put 'guru99', 'r1', 'e:c1', 'value', 10 put 'guru99', 'r1', 'e:c1', 'value', 12 put 'guru99', 'r1', 'e:c1', 'value', 14 delete 'guru99', 'r1', 'e:c1', 11
Αν εκτελέσουμε την εντολή σάρωσης:
Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}
Θα εμφανίσει την έξοδο που φαίνεται παρακάτω:
Η έξοδος που εμφανίζεται στο παραπάνω στιγμιότυπο οθόνης παρέχει τις ακόλουθες πληροφορίες:
- Σάρωση του πίνακα guru99 με χαρακτηριστικά RAW=>true, VERSIONS=>1000.
- Εμφάνιση γραμμών με οικογένειες στηλών και τιμές.
- Στην τρίτη σειρά, οι τιμές που εμφανίζονται δείχνουν τη διαγραμμένη τιμή που υπάρχει στη στήλη.
- Η έξοδος που εμφανίζεται είναι τυχαία· δεν μπορεί να είναι στην ίδια σειρά με τις τιμές που εισαγάγαμε στον πίνακα.
Cluster Εντολές αναπαραγωγής
- Αυτές οι εντολές λειτουργούν στη λειτουργία ρύθμισης συμπλέγματος του HBase.
- Για την προσθήκη και την αφαίρεση ομότιμων σε ένα σύμπλεγμα, καθώς και για την έναρξη και διακοπή της αναπαραγωγής, αυτές οι εντολές χρησιμοποιούνται γενικά.
| εντολή | Λειτουργικότητα |
|---|---|
| add_peer | Προσθέτει ομότιμους σε ένα σύμπλεγμα για αναπαραγωγή. hbase> προσθήκη_ομότιμου '3', zk1, zk2, zk3:2182:/hbase-prod |
| remove_peer | Διακόπτει την καθορισμένη ροή αναπαραγωγής και διαγράφει όλες τις πληροφορίες μεταδεδομένων σχετικά με τον ομότιμο χρήστη. hbase> remove_peer '1' |
| start_replication | Επανεκκινεί όλες τις λειτουργίες αναπαραγωγής. hbase> start_replication |
| stop_replication | Διακόπτει όλες τις λειτουργίες αναπαραγωγής. hbase>stop_replication |























