HBase Δημιουργία πίνακα με Java Παράδειγμα API & Shell
⚡ Έξυπνη Σύνοψη
Το HBase αποθηκεύει δεδομένα σε πίνακες και μπορείτε να δημιουργήσετε και να διαχειριστείτε αυτούς τους πίνακες με δύο τρόπους: μέσω του Java API με HTableDescriptή και HBaseAdmin, ή απευθείας στο κέλυφος HBase χρησιμοποιώντας την εντολή create.

Πώς να δημιουργήσετε πίνακα στο HBase με Java API
Στο HBase, οι πίνακες μπορούν να δημιουργηθούν με δύο τρόπους: μέσω του Java API και μέσω του κελύφους HBase. Αυτή η ενότητα καλύπτει το Java API, το οποίο επιτρέπει σε μια εφαρμογή να δημιουργεί πίνακες και να φορτώνει δεδομένα μέσω προγραμματισμού ως μέρος μιας μεγαλύτερης εργασίας.
Μέσω Java API, μπορούμε να δημιουργήσουμε πίνακες στο HBase και επίσης να φορτώσουμε δεδομένα σε πίνακες χρησιμοποιώντας Java κωδικοποίηση. Τα δύο πράγματα που ρυθμίζουμε εδώ είναι:
- Δημιουργία σύνδεσης με το HBase μέσω Java API.
- Χρησιμοποιώντας Eclipse για Java κωδικοποίηση, εντοπισμός σφαλμάτων και δοκιμές.
Ακολουθούν τα βήματα για τη δημιουργία πινάκων στο HBase Java API.
Βήμα 1) Δημιουργήστε ένα Java Έργο σε Eclipse
Σε αυτό το βήμα, θα δημιουργήσουμε ένα Java έργο στο Eclipse για τη σύνδεση HBase, με το όνομα "HbaseConnection".
Η Νέα Java Το παράθυρο διαλόγου έργου παρακάτω δείχνει το έργο "HbaseConnection" που ρυθμίζεται:
Αν παρατηρήσουμε το παραπάνω στιγμιότυπο οθόνης:
- Δώστε το όνομα του έργου σε αυτό το πλαίσιο. Στην περίπτωσή μας, το όνομα του έργου είναι «HbaseConnection».
- Επιλέξτε αυτό το πλαίσιο για την προεπιλεγμένη τοποθεσία αποθήκευσης. Εδώ /home/hduser/work/HbaseConnection είναι η διαδρομή.
- Επιλέξτε το πλαίσιο για το Java περιβάλλον εδώ. Σε αυτήν την περίπτωση JavaSE-1.7 είναι το Java έκδοση.
- Επιλέξτε την επιλογή για το πού θέλετε να αποθηκεύσετε το αρχείο. Στην περίπτωσή μας, επιλέξαμε τη δεύτερη επιλογή, "Δημιουργία ξεχωριστού φακέλου για αρχεία πηγών και κλάσης".
- Κάντε κλικ στο κουμπί Τέλος, το οποίο δημιουργεί το έργο "HbaseConnection" στο Eclipse και ανοίγει το Eclipse αρχική σελίδα.
Βήμα 2) Διαμορφώστε τη διαδρομή δημιουργίας στο Eclipse
Στις Eclipse στην αρχική σελίδα, ακολουθήστε τα παρακάτω βήματα για να ανοίξετε τη διαμόρφωση της διαδρομής δημιουργίας:
Right click on project -> Select Build Path -> Configure build path
Το παρακάτω στιγμιότυπο οθόνης δείχνει το μενού δεξιού κλικ που χρησιμοποιείται για το άνοιγμα της διαμόρφωσης της διαδρομής δημιουργίας:
Από το παραπάνω στιγμιότυπο οθόνης:
- Κάντε δεξί κλικ σε ένα έργο.
- Επιλέξτε Διαδρομή δημιουργίας.
- Επιλέξτε Ρύθμιση παραμέτρων διαδρομής δημιουργίας.
Αφού κάνετε κλικ στην επιλογή Ρύθμιση παραμέτρων δημιουργίας διαδρομής, ανοίγει ένα άλλο παράθυρο, το οποίο φαίνεται στο παρακάτω στιγμιότυπο οθόνης. Η καρτέλα Βιβλιοθήκες είναι το σημείο όπου προστίθενται στο έργο τα αρχεία JAR HBase και Hadoop:
Σε αυτό το βήμα, προσθέτουμε τα σχετικά JAR HBase στο Java έργο όπως φαίνεται στο στιγμιότυπο οθόνης.
- Σημαντικά JAR που θα προστεθούν: hbase-0.94.8.jar και hadoop-core-1.1.2.jar.
- Μεταβείτε στην καρτέλα Βιβλιοθήκες.
- Πατήστε την επιλογή Προσθήκη εξωτερικών JAR.
- Επιλέξτε τα απαραίτητα σημαντικά JAR.
- Πατήστε το κουμπί Τέλος για να προσθέσετε αυτά τα αρχεία στο "src" του Java έργο στην ενότητα Βιβλιοθήκες.
Αφού προστεθούν τα JAR, εμφανίζονται στην τοποθεσία "src" του έργου, όπως φαίνεται παρακάτω:
Όλα τα αρχεία JAR που εμπίπτουν στο έργο είναι πλέον έτοιμα για χρήση με το οικοσύστημα Hadoop.
Βήμα 3) Δημιουργήστε τη σύνδεση HBase
Σε αυτό το βήμα, χρησιμοποιώντας το HBaseConnection.java, η σύνδεση HBase δημιουργείται μέσω Java κωδικοποίηση.
Στις Eclipse στο επάνω μενού, εκτελέστε ένα Java πρόγραμμα όπως φαίνεται παρακάτω: Εκτέλεση -> Εκτέλεση ως -> Java Εφαρμογή. Το παρακάτω μενού δείχνει το πρόγραμμα που εκκινείται:
- Επιλέξτε Εκτέλεση.
- Επιλέξτε Εκτέλεση ως Java Εφαρμογή.
- Αυτός ο κώδικας δημιουργεί μια σύνδεση με το HBase μέσω Java API.
- Μετά την εκτέλεση αυτού του κώδικα, ο πίνακας "guru99" δημιουργείται στο HBase με δύο οικογένειες στηλών με ονόματα "education" και "projects". Προς το παρόν, μόνο το κενό σχήμα δημιουργείται στο HBase.
Το παρακάτω απόσπασμα κώδικα αναδεικνύει το HTableDescriptή και κλήσεις addFamily που δημιουργούν το σχήμα πίνακα:
Από το παραπάνω στιγμιότυπο οθόνης, εκτελούμε τις ακόλουθες λειτουργίες:
- Χρήση HTableDescriptή, μπορούμε να δημιουργήσουμε τον πίνακα "guru99" στο HBase.
- Χρησιμοποιώντας τη μέθοδο addFamily, προσθέτουμε τις στήλες «education» και «projects» ως οικογένειες στηλών στον πίνακα «guru99».
Ο παρακάτω κώδικας θα δημιουργήσει μια σύνδεση με το HBase και θα δημιουργήσει τον πίνακα "guru99" με δύο οικογένειες στηλών. Τοποθετήστε αυτόν τον κώδικα στο έγγραφο HBaseConnection.java:
// Place this code inside Hbase connection import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; Import org.apache.hadoop.hbase.client.HBaseAdmin; public class HBaseConnection { public static void main(String[] args) throws IOException { HBaseConfigurationhc = new HBaseConfiguration(new Configuration()); HTableDescriptorht = new HTableDescriptor("guru99"); ht.addFamily( new HColumnDescriptor("education")); ht.addFamily( new HColumnDescriptor("projects")); System.out.println( "connecting" ); HBaseAdminhba = new HBaseAdmin( hc ); System.out.println( "Creating Table" ); hba.createTable( ht ); System.out.println("Done......"); } }
Αυτός είναι ο απαιτούμενος κώδικας που πρέπει να τοποθετήσετε στο HBaseConnection.java πριν εκτελέσετε το Java προγράμματος.
Μετά την εκτέλεση αυτού του προγράμματος, δημιουργεί μια σύνδεση με το HBase και, με τη σειρά του, δημιουργεί έναν πίνακα με ονόματα στηλών.
- Το όνομα του πίνακα είναι "guru99".
- Οι οικογένειες στηλών είναι «εκπαίδευση» και «έργα».
Βήμα 4) Ελέγξτε τον Πίνακα που δημιουργήθηκε στο HBase
Μπορούμε να ελέγξουμε αν ο πίνακας "guru99" δημιουργείται με δύο οικογένειες στηλών στο HBase χρησιμοποιώντας τη λειτουργία κελύφους HBase με την εντολή "list". Η εντολή "list" παρέχει πληροφορίες σχετικά με όλους τους πίνακες που δημιουργούνται στο HBase.
Η εκτέλεση της εντολής list στο κέλυφος HBase επιβεβαιώνει τον νέο πίνακα, όπως φαίνεται παρακάτω:
- Code έλεγχος στο κέλυφος HBase εκτελώντας την εντολή "list".
- Αν εκτελέσουμε την εντολή "list", εμφανίζεται ο πίνακας που δημιουργήθηκε στο HBase. Στην περίπτωσή μας, μπορούμε να δούμε ότι έχει δημιουργηθεί ο πίνακας "guru99".
HBase Δημιουργία πίνακα με Shell
Εκτός από το Java API, μπορείτε να δημιουργήσετε έναν πίνακα απευθείας από το κέλυφος HBase, ο οποίος είναι ο πιο γρήγορος τρόπος για να ρυθμίσετε έναν πίνακα για γρήγορες δοκιμές. Η σύνταξη για τη δημιουργία ενός πίνακα στο 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.
create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
Εδώ, το μπλοκ {NAME=>'Edu', VERSIONS=>…} ορίζει μια οικογένεια στηλών με το όνομα "Edu" και τον αριθμό των εκδόσεων κελιών που διατηρεί. Ο μεγάλος αριθμός είναι μόνο ενδεικτικός. Στην πράξη, το VERSIONS είναι μια μικρή τιμή, όπως 3 ή 5.
Καταγραφή, περιγραφή και επαλήθευση πινάκων HBase
Η δημιουργία ενός πίνακα είναι μόνο το πρώτο μέρος της διαχείρισης πινάκων στο HBase. Μόλις δημιουργηθεί ο πίνακας "guru99", μερικές γενικές εντολές σάς επιτρέπουν να τον ελέγξετε και να επιβεβαιώσετε την κατάστασή του πριν διαβάσετε, γράψετε ή τροποποιήσετε δεδομένα. Μπορείτε να τις εκτελέσετε όλες από το Κέλυφος HBase.
Η εντολή list επιστρέφει κάθε πίνακα χρηστών στο HBase:
hbase> list
Η εντολή describe δείχνει τη δομή ενός πίνακα, συμπεριλαμβανομένων των οικογενειών στηλών του και αν είναι ενεργοποιημένη αυτήν τη στιγμή:
hbase> describe 'guru99'
Η εντολή exists ελέγχει εάν υπάρχει ένας πίνακας και η εντολή is_enabled αναφέρει εάν ο πίνακας μπορεί να δεχτεί εγγραφές:
hbase> exists 'guru99' hbase> is_enabled 'guru99'
Αυτοί οι έλεγχοι μόνο για ανάγνωση είναι ασφαλείς για εκτέλεση ανά πάσα στιγμή. Είναι ο πιο γρήγορος τρόπος για να επιβεβαιώσετε ότι ένας πίνακας δημιουργήθηκε σωστά και να ελέγξετε τις οικογένειες στηλών του πριν από τη φόρτωση δεδομένων.
Τροποποίηση ενός πίνακα HBase
Ένα σχήμα πίνακα HBase δεν διορθώνεται μετά τη δημιουργία του. Η εντολή alter αλλάζει τις οικογένειες στηλών και τα χαρακτηριστικά table-scope ενός πίνακα χωρίς να τον αναδημιουργήσει. Ανάλογα με την έκδοση HBase που διαθέτετε, ίσως χρειαστεί πρώτα να απενεργοποιήσετε τον πίνακα και, στη συνέχεια, να εκτελέσετε την εντολή alter και να τον ενεργοποιήσετε ξανά.
Για να προσθέσετε μια νέα οικογένεια στηλών στον πίνακα "guru99":
hbase> alter 'guru99', {NAME => 'contact'}
Για να ορίσετε πόσες εκδόσεις διατηρεί μια οικογένεια στηλών:
hbase> alter 'guru99', NAME => 'education', VERSIONS => 5
Για να διαγράψετε μια οικογένεια στηλών από τον πίνακα:
hbase> alter 'guru99', {NAME => 'contact', METHOD => 'delete'}
Μπορείτε επίσης να αλλάξετε τα χαρακτηριστικά του πίνακα-εμβέλειας. Για παράδειγμα, επισημάνετε τον πίνακα ως μόνο για ανάγνωση ή ορίστε το μέγιστο μέγεθος αρχείου περιοχής σε 128 MB:
hbase> alter 'guru99', READONLY hbase> alter 'guru99', MAX_FILESIZE => '134217728'
Επειδή η alter ξαναγράφει το σχήμα, σχεδιάστε προσεκτικά τις αλλαγές σε έναν πίνακα παραγωγής και επιβεβαιώστε το αποτέλεσμα στη συνέχεια με την εντολή describe.
Απενεργοποίηση, ενεργοποίηση και απόρριψη πινάκων HBase
Για να καταργήσετε έναν πίνακα ή να εφαρμόσετε συγκεκριμένες αλλαγές, το HBase απαιτεί πρώτα να τον απενεργοποιήσετε. Η απενεργοποίηση θέτει τον πίνακα εκτός σύνδεσης, επομένως κανένας υπολογιστής-πελάτης δεν μπορεί να τον διαβάσει ή να γράψει, γεγονός που καθιστά τις δομικές αλλαγές ασφαλείς.
Απενεργοποιήστε έναν πίνακα και ελέγξτε την κατάστασή του με την εντολή is_disabled:
hbase> disable 'guru99' hbase> is_disabled 'guru99'
Ενεργοποιήστε ξανά τον πίνακα για να συνεχίσετε τις αναγνώσεις και τις εγγραφές:
hbase> enable 'guru99'
Ένας πίνακας πρέπει να είναι απενεργοποιημένος πριν να είναι δυνατή η απόθεση. Απόθεσηping διαγράφει τον πίνακα και όλα τα δεδομένα του μόνιμα, επομένως χρησιμοποιήστε το με προσοχή:
hbase> disable 'guru99' hbase> drop 'guru99'
Για να καταργήσετε πολλούς πίνακες ταυτόχρονα, η συνάρτηση drop_all διαγράφει κάθε πίνακα του οποίου το όνομα ταιριάζει με μια κανονική έκφραση. Μαζί, δημιουργήστε, τροποποιήστε, απενεργοποιήστε, ενεργοποιήστε και απορρίψτε ολόκληρο τον κύκλο ζωής του χειρισμός δεδομένων σε πίνακες HBase.






