Εντολές HBase Shell με παραδείγματα

⚡ Έξυπνη Σύνοψη

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

  • Γενικές εντολές: Τα status, version, table_help και whoami αναφέρουν την κατάσταση του συμπλέγματος και τις πληροφορίες χρήστη.
  • 🗂️ Διαχείριση τραπεζιού: δημιουργία, καταχώριση, περιγραφή, απενεργοποίηση, ενεργοποίηση, απόρριψη και τροποποίηση δημιουργίας και αναδιαμόρφωσης πινάκων.
  • ΧΕΙΡΑΓΩΓΗΣΗ ΔΕΔΟΜΕΝΩΝ: τοποθέτηση, λήψη, διαγραφή, διαγραφή όλων, περικοπή, καταμέτρηση και σάρωση, ανάγνωση και εγγραφή τιμών κελιών.
  • 🔁 Cluster αναπαραγωγή: Οι add_peer, remove_peer, start_replication και stop_replication διαχειρίζονται την αναπαραγωγή δεδομένων.
  • Χαρακτηριστικό TTL: Ο χρόνος ζωής λήγει αυτόματα στις γραμμές της οικογένειας στηλών μετά από έναν καθορισμένο αριθμό δευτερολέπτων.
  • 🤖 Βοήθεια με Τεχνητή Νοημοσύνη: Οι βοηθοί τεχνητής νοημοσύνης δημιουργούν και εξηγούν εντολές κελύφους HBase από εντολές απλής γλώσσας.

Εντολές κελύφους 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. Η διαδραστική προτροπή του κελύφους εμφανίζεται όπως φαίνεται παρακάτω:

Η προτροπή διαδραστικού κελύφους 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'

Η έξοδος κατάστασης εμφανίζεται παρακάτω:

Έξοδος εντολής κατάστασης κελύφους HBase που εμφανίζει ενεργούς διακομιστές, νεκρούς διακομιστές και μέσο φορτίο

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

Έκδοση

Syntax: version

Η έξοδος της έκδοσης φαίνεται παρακάτω:

Εντολή έκδοσης κελύφους HBase που εμφανίζει την εγκατεστημένη έκδοση HBase

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

Βοήθεια πίνακα

Syntax:table_help

Η έξοδος table_help φαίνεται παρακάτω:

Λίστα εξόδου του κελύφους HBase table_help για τη χρήση των εντολών create και get_table

Αυτή η εντολή καθοδηγεί:

  • Τι είναι οι εντολές με αναφορά σε πίνακες και πώς να τις χρησιμοποιήσετε.
  • Θα παρέχει διαφορετικές χρήσεις εντολών κελύφους HBase και τις συντάξεις τους.
  • Εδώ, στο παραπάνω στιγμιότυπο οθόνης, φαίνεται η σύνταξη για τις εντολές "create" και "get_table" με τη χρήση τους. Μπορούμε να χειριστούμε τον πίνακα μέσω αυτών των εντολών μόλις δημιουργηθεί ο πίνακας στο HBase.
  • Θα δώσει εντολές χειρισμού πίνακα όπως put, get και όλες τις άλλες πληροφορίες εντολών.

whoami

Syntax: Whoami

Η έξοδος whoami φαίνεται παρακάτω:

Η εντολή whoami του κελύφους HBase επιστρέφει τον τρέχοντα χρήστη hduser και τις ομάδες

Αυτή η εντολή "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 που δημιουργεί τον πίνακα εκπαίδευσης με την οικογένεια στηλών guru99

Το παραπάνω παράδειγμα εξηγεί πώς να δημιουργήσετε έναν πίνακα στο HBase με το καθορισμένο όνομα που δίνεται σύμφωνα με τις προδιαγραφές για κάθε οικογένεια στηλών. Εκτός από αυτό, μπορούμε επίσης να περάσουμε σε αυτόν ορισμένα χαρακτηριστικά table-scope. Για να ελέγξουμε εάν ο πίνακας 'education' έχει δημιουργηθεί ή όχι, χρησιμοποιούμε την εντολή "list" παρακάτω. Δείτε επίσης δημιουργία πινάκων HBase με Java και κέλυφος.

Λιστα

Syntax:list

Η έξοδος της λίστας φαίνεται παρακάτω:

Εντολή λίστας κελύφους HBase που εμφανίζει οκτώ υπάρχοντες πίνακες στο HBase

  • Η εντολή "list" θα εμφανίσει όλους τους πίνακες που υπάρχουν ή δημιουργούνται στο HBase.
  • Η έξοδος που εμφανίζεται στο παραπάνω στιγμιότυπο οθόνης εμφανίζει αυτήν τη στιγμή τους υπάρχοντες πίνακες στο HBase.
  • Εδώ, σε αυτό το στιγμιότυπο οθόνης, φαίνεται ότι υπάρχουν συνολικά 8 πίνακες μέσα στο HBase.
  • Μπορούμε να φιλτράρουμε τις τιμές εξόδου από τους πίνακες διαβιβάζοντας προαιρετικές παραμέτρους κανονικής έκφρασης.

Περιγράφω

Syntax:describe <table name>
hbase(main):010:0>describe 'education'

Η περιγραφή της εξόδου φαίνεται παρακάτω:

Το κέλυφος HBase περιγράφει την έξοδο της εντολής που περιγράφει λεπτομερώς τις οικογένειες στηλών του πίνακα εκπαίδευσης

Αυτή η εντολή περιγράφει τον πίνακα με το όνομα.

  • Θα δώσει περισσότερες πληροφορίες σχετικά με τις οικογένειες στηλών που υπάρχουν στον προαναφερθέντα πίνακα.
  • Στην περίπτωσή μας, δίνει την περιγραφή του πίνακα «εκπαίδευση».
  • Θα παρέχει πληροφορίες σχετικά με το όνομα του πίνακα με τις οικογένειες στηλών, τα σχετικά φίλτρα, τις εκδόσεις και μερικές ακόμη λεπτομέρειες.

απενεργοποίηση

Syntax: disable <tablename>
hbase(main):011:0>disable 'education'

Η έξοδος απενεργοποίησης εμφανίζεται παρακάτω:

Εντολή απενεργοποίησης κελύφους HBase που θέτει τον πίνακα εκπαίδευσης εκτός σύνδεσης

  • Αυτή η εντολή θα ξεκινήσει την απενεργοποίηση του επώνυμου πίνακα.
  • Εάν ένας πίνακας χρειάζεται να διαγραφεί ή να αφαιρεθεί, πρέπει πρώτα να απενεργοποιηθεί.

Εδώ, στο παραπάνω στιγμιότυπο οθόνης, απενεργοποιούμε την εκπαίδευση πίνακα.

απενεργοποίηση όλων

 Syntax: disable_all<"matching regex"
  • Αυτή η εντολή θα απενεργοποιήσει όλους τους πίνακες που ταιριάζουν με το δεδομένο regex.
  • Η υλοποίηση είναι η ίδια με την εντολή drop (εκτός από την προσθήκη ενός regex για αντιστοίχιση).
  • Μόλις απενεργοποιηθεί ο πίνακας, ο χρήστης μπορεί να τον διαγράψει από το HBase.
  • Πριν από τη διαγραφή ή την απόθεσηping ένας πίνακας, θα πρέπει πρώτα να απενεργοποιηθεί.

Ενεργοποίηση

Syntax: enable <tablename>
hbase(main):012:0>enable 'education'

Η έξοδος ενεργοποίησης εμφανίζεται παρακάτω:

Η εντολή ενεργοποίησης κελύφους HBase επανενεργοποιεί τον απενεργοποιημένο πίνακα εκπαίδευσης

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

εμφάνιση_φίλτρων

Syntax: show_filters

Η έξοδος show_filters εμφανίζεται παρακάτω:

Λίστα εξόδου show_filters του κελύφους HBase shell Διαθέσιμα φίλτρα HBase

Αυτή η εντολή εμφανίζει όλα τα φίλτρα που υπάρχουν στο HBase, όπως ColumnPrefixFilter, TimestampsFilter, PageFilter, FamilyFilter, κ.λπ.

πτώση

Syntax:drop <table name>
hbase(main):017:0>drop 'education'

Η έξοδος της πτώσης φαίνεται παρακάτω:

Εντολή απόθεσης κελύφους HBase που διαγράφει τον πίνακα εκπαίδευσης με απενεργοποιημένη λειτουργία

Πρέπει να προσέξουμε τα παρακάτω σημεία για την εντολή 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 που αλλάζει την οικογένεια στηλών του πίνακα εκπαίδευσης σε guru99_1

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5

Μπορείτε επίσης να χρησιμοποιήσετε την εντολή alter σε διάφορες οικογένειες στηλών. Για παράδειγμα, θα ορίσουμε δύο νέες στήλες για τον υπάρχοντα πίνακά μας "education", όπως φαίνεται παρακάτω:

Η εντολή HBase shell alter προσθέτει δύο νέες οικογένειες στηλών guru99_2 και guru99_3

 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
  • Μπορούμε να αλλάξουμε περισσότερα από ένα σχήματα στηλών ταυτόχρονα χρησιμοποιώντας αυτήν την εντολή.
  • Τα guru99_2 και guru99_3, όπως φαίνεται στο παραπάνω στιγμιότυπο οθόνης, είναι τα δύο νέα ονόματα στηλών που έχουμε ορίσει για την εκπαίδευση πινάκων.
  • Μπορούμε να δούμε τον τρόπο χρήσης αυτής της εντολής στο προηγούμενο στιγμιότυπο οθόνης.

Σε αυτό το βήμα, θα δούμε πώς να διαγράψετε μια οικογένεια στηλών από τον πίνακα. Για να διαγράψετε την οικογένεια στηλών 'f1' στον πίνακα 'education', χρησιμοποιήστε μία από τις παρακάτω εντολές. Το αποτέλεσμα εμφανίζεται στο παρακάτω στιγμιότυπο οθόνης:

Εντολή αλλαγής κελύφους HBase που διαγράφει μια οικογένεια στηλών από τον πίνακα εκπαίδευσης

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'

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

Εντολή αλλαγής κελύφους HBase που ορίζει το χαρακτηριστικό MAX_FILESIZE table-scope

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_status του κελύφους HBase εμφανίζει μία από τις περιοχές που έχουν ενημερωθεί

  • Μέσω αυτής της εντολής, μπορείτε να λάβετε την κατάσταση της εντολής alter.
  • Υποδεικνύει τον αριθμό των περιοχών του πίνακα που έχουν λάβει το ενημερωμένο σχήμα. Μεταβιβάζετε το όνομα του πίνακα.
  • Εδώ, στο παραπάνω στιγμιότυπο οθόνης, δείχνει ότι ενημερώθηκε το 1/1 των περιοχών. Αυτό σημαίνει ότι έχει ενημερωθεί μία περιοχή. Μετά από αυτό, εάν είναι επιτυχής, θα εμφανιστεί το σχόλιο "ολοκληρώθηκε".

Εντολές χειρισμού δεδομένων

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

  • Κόμης
  • Βάζω
  • ΕΠΙΚΟΙΝΩΝΗΣΤΕ
  • Διαγραφή
  • Διαγραφή όλων
  • Κολοβός
  • σάρωση

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

Κόμης

Syntax: count <'tablename'>, CACHE =>1000
  • Η εντολή θα ανακτήσει τον αριθμό των γραμμών σε έναν πίνακα. Η τιμή που επιστρέφεται από αυτήν την εντολή είναι ο αριθμός των γραμμών.
  • Ο τρέχων αριθμός εμφανίζεται ανά 1000 γραμμές από προεπιλογή.
  • Το διάστημα μέτρησης μπορεί να καθοριστεί προαιρετικά.
  • Το προεπιλεγμένο μέγεθος της προσωρινής μνήμης είναι 10 γραμμές.
  • Η εντολή count θα λειτουργήσει γρήγορα όταν έχει ρυθμιστεί με τη σωστή προσωρινή μνήμη.

Παράδειγμα:

hbase> count 'guru99', CACHE=>1000

Η έξοδος μέτρησης εμφανίζεται παρακάτω:

Η εντολή HBase shell count επιστρέφει τον αριθμό γραμμών του πίνακα guru99

Αυτό το παράδειγμα μέτρησης ανακτά 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", όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.

Η εντολή HBase shell put εισάγει τις τιμές 10, 15 και 30 στον πίνακα guru99

Ας υποθέσουμε ότι ο πίνακας "guru99" έχει κάποια αναφορά πίνακα, όπως ας πούμε το g. Μπορούμε επίσης να εκτελέσουμε την εντολή στην αναφορά πίνακα, όπως:

hbase> g.put 'guru99', 'r1', 'c1', 'value', 10

Η έξοδος θα είναι όπως φαίνεται στο παραπάνω στιγμιότυπο οθόνης μετά την τοποθέτηση τιμών στο "guru99". Για να ελέγξουμε αν η τιμή εισόδου έχει εισαχθεί σωστά στον πίνακα, χρησιμοποιούμε την εντολή "scan". Στο παρακάτω στιγμιότυπο οθόνης, μπορούμε να δούμε ότι οι τιμές έχουν εισαχθεί σωστά.

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

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:

Η εντολή get του κελύφους HBase επιστρέφει τη σειρά r1 και τη στήλη c1 από τον πίνακα guru99

Παραδείγματα: -

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 που αφαιρεί το κελί 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:

Εντολή deleteall του κελύφους HBase που αφαιρεί όλα τα κελιά στη γραμμή r1 του πίνακα guru99

hbase>deleteall 'guru99', 'r1', 'c1'

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

Κολοβός

Syntax:  truncate <tablename>

Η εντολή truncate παρακάτω αδειάζει τον πίνακα ενώ το keeping το σχήμά του:

Απενεργοποίηση εντολής περικοπής κελύφους HBase, απόθεσηpingκαι αναδημιουργώντας τον πίνακα guru99

Μετά την περικοπή ενός πίνακα HBase, το σχήμα θα υπάρχει αλλά όχι οι εγγραφές. Αυτή η εντολή εκτελεί 3 λειτουργίες, οι οποίες παρατίθενται παρακάτω:

  • Απενεργοποιεί τον πίνακα εάν υπάρχει ήδη.
  • Αποσύρει τον πίνακα εάν υπάρχει ήδη.
  • Αναδημιουργεί τον αναφερόμενο πίνακα.

σάρωση

Syntax: scan <'tablename'>, {Optional parameters}

Αυτή η εντολή σαρώνει ολόκληρο τον πίνακα και εμφανίζει τα περιεχόμενά του.

  • Μπορούμε να περάσουμε πολλές προαιρετικές προδιαγραφές σε αυτήν την εντολή σάρωσης για να λάβουμε περισσότερες πληροφορίες σχετικά με τους πίνακες που υπάρχουν στο σύστημα.
  • Οι προδιαγραφές του σαρωτή μπορεί να περιλαμβάνουν ένα ή περισσότερα από τα ακόλουθα χαρακτηριστικά.
  • Αυτά είναι τα TIMERANGE (ΧΡΟΝΟΜΕΤΡΟ), FILTER (ΦΙΛΤΡΟ), TIMESTAMP (ΧΡΟΝΙΚΗ ΣΦΡΑΓΙΔΑ), LIMIT (ΟΡΙΟ), MAX LENGTH (ΜΕΓΙΣΤΟ ΜΗΚΟΣ), COLUMNS (ΣΤΗΛΕΣ), CACHE (ΠΡΟΣΟΧΗ), STARTROW (ΕΝΑΡΞΗ ΡΟΗΣ) και STOPROW (ΔΙΑΚΟΠΗ).
scan 'guru99'

Το αποτέλεσμα της σάρωσης εμφανίζεται παρακάτω:

Εντολή σάρωσης κελύφους HBase που εμφανίζει τις γραμμές r1, r2 και r3 του πίνακα 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 Παράδειγμα: Αρχικά, δημιουργήστε έναν πίνακα και τοποθετήστε τιμές σε αυτόν. Η εισαγωγή εμφανίζεται στο παρακάτω στιγμιότυπο οθόνης:

Είσοδος κελύφους HBase που δημιουργεί τον πίνακα guru99 και εισάγει τιμές έκδοσης πριν από μια ακατέργαστη σάρωση

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}

Θα εμφανίσει την έξοδο που φαίνεται παρακάτω:

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

Η έξοδος που εμφανίζεται στο παραπάνω στιγμιότυπο οθόνης παρέχει τις ακόλουθες πληροφορίες:

  • Σάρωση του πίνακα 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

Συχνές Ερωτήσεις

Πληκτρολογήστε exit ή quit και πατήστε Enter για να βγείτε από το διαδραστικό κέλυφος HBase και να επιστρέψετε στην προτροπή του λειτουργικού συστήματος. Ανοίγετε το κέλυφος με την εντολή hbase shell. Ούτε το exit ούτε το quit σταματούν την υπηρεσία HBase. απλώς τερματίζουν την περίοδο λειτουργίας του κελύφους.

Ναι. Μεταφέρετε εντολές σε μη διαδραστικό σύστημα, για παράδειγμα echo “list” | hbase shell, ή εκτελέστε ένα αποθηκευμένο αρχείο με το hbase shell script.txt. Επειδή το κέλυφος βασίζεται στο JRuby, μπορείτε επίσης να ενσωματώσετε λογική και βρόχους Ruby μέσα σε αρχεία σεναρίων .rb.

Το κέλυφος είναι μια διαδραστική προτροπή JRuby για γρήγορες χειροκίνητες εντολές και διαχείριση. Java Το API, που χρησιμοποιεί Connection, Admin και Table, προορίζεται για εφαρμογές που δημιουργούν πίνακες και διαβάζουν ή γράφουν δεδομένα μέσω προγραμματισμού. Και τα δύο φτάνουν στο ίδιο σύμπλεγμα και δεδομένα HBase.

Το σφάλμα "Ο πίνακας υπάρχει ήδη" εμφανίζεται όταν η λειτουργία δημιουργίας επαναλαμβάνει ένα υπάρχον όνομα και το σφάλμα "Ο πίνακας δεν είναι απενεργοποιημένος" εμφανίζεται όταν κάνετε απόθεση ή τροποποίηση χωρίς να το απενεργοποιήσετε πρώτα. Εκτελέστε την εντολή απενεργοποίησης του 'table' πριν από την απόθεση ή την τροποποίηση και χρησιμοποιήστε την εντολή exists 'table' για να ελέγξετε ένα όνομα πριν το δημιουργήσετε.

Μια οικογένεια στηλών HBase διατηρεί έναν περιορισμένο αριθμό εκδόσεων με χρονική σήμανση ανά κελί, ιστορικά τρεις και μία σε νεότερες εκδόσεις. Ορίστε την καταμέτρηση με VERSIONS κατά τη δημιουργία ή την τροποποίηση και ζητήστε παλαιότερες εκδόσεις χρησιμοποιώντας {VERSIONS => n} σε μια εντολή get ή scan.

Μια μεταβλητή αναφοράς πίνακα είναι ένα αντικείμενο κελύφους που επιστρέφεται από την μεταβλητή g = get_table 'guru99'. Στη συνέχεια, καλείτε μεθόδους σε αυτήν, όπως g.put, g.get ή g.count, αντί να επαναλαμβάνετε το όνομα του πίνακα. Είναι μια βολική συντόμευση τύπου JRuby στο κέλυφος HBase.

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

Ναί. GitHub Copilot προτείνει εντολές κελύφους HBase και σενάρια JRuby από ένα σύντομο σχόλιο, συμπεριλαμβανομένων παραδειγμάτων δημιουργίας, τοποθέτησης, σάρωσης και τροποποίησης. RevΕλέγξτε την έξοδό του για το σωστό όνομα πίνακα, τις οικογένειες στηλών και τη σύνταξη, όπως VERSIONS, πριν το εκτελέσετε σε ένα πραγματικό σύμπλεγμα.

Συνοψίστε αυτήν την ανάρτηση με: