HBase Δημιουργία πίνακα με Java Παράδειγμα API & Shell

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

Το HBase αποθηκεύει δεδομένα σε πίνακες και μπορείτε να δημιουργήσετε και να διαχειριστείτε αυτούς τους πίνακες με δύο τρόπους: μέσω του Java API με HTableDescriptή και HBaseAdmin, ή απευθείας στο κέλυφος HBase χρησιμοποιώντας την εντολή create.

  • Java API: Δημιουργήστε πίνακες σε κώδικα με το HTableDescriptή, HColumnDescriptή, και HBaseAdmin.
  • 🐚 Δημιουργία κελύφους: Η εντολή δημιουργίας δημιουργεί έναν πίνακα από ένα όνομα και μία ή περισσότερες οικογένειες στηλών.
  • 🧬 Οικογένειες στηλών: Κάθε πίνακας χρειάζεται τουλάχιστον μία οικογένεια στηλών, η οποία ορίζεται κατά τη δημιουργία του πίνακα.
  • 🔧 Τροποποίηση πινάκων: Η εντολή alter προσθέτει οικογένειες στηλών, ορίζει VERSIONS ή αλλάζει τα χαρακτηριστικά table-scope.
  • 🗑️ Κύκλος ζωής πίνακα: Απενεργοποιήστε έναν πίνακα πριν τον τροποποιήσετε ή τον αποβάλετε και, στη συνέχεια, ενεργοποιήστε τον ξανά για να συνεχίσετε τις εγγραφές.
  • 🤖 Βοήθεια με Τεχνητή Νοημοσύνη: Οι βοηθοί τεχνητής νοημοσύνης συντάσσουν εντολές δημιουργίας, τροποποίησης και απόθεσης και εξετάζουν τον σχεδιασμό της οικογένειας στηλών.

Δημιουργία πίνακα από το HBase με Java Παράδειγμα εντολών API και shell

Πώς να δημιουργήσετε πίνακα στο 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" που ρυθμίζεται:

Eclipse Νέα Java Παράθυρο διαλόγου έργου που δημιουργεί το έργο HbaseConnection με ένα JavaΠεριβάλλον SE-1.7

Αν παρατηρήσουμε το παραπάνω στιγμιότυπο οθόνης:

  • Δώστε το όνομα του έργου σε αυτό το πλαίσιο. Στην περίπτωσή μας, το όνομα του έργου είναι «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

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

Eclipse κάντε δεξί κλικ στο μενού του έργου επιλέγοντας Δόμηση Διαδρομής και στη συνέχεια Ρύθμιση Διαμόρφωσης Διαδρομής Δόμησης

Από το παραπάνω στιγμιότυπο οθόνης:

  • Κάντε δεξί κλικ σε ένα έργο.
  • Επιλέξτε Διαδρομή δημιουργίας.
  • Επιλέξτε Ρύθμιση παραμέτρων διαδρομής δημιουργίας.

Αφού κάνετε κλικ στην επιλογή Ρύθμιση παραμέτρων δημιουργίας διαδρομής, ανοίγει ένα άλλο παράθυρο, το οποίο φαίνεται στο παρακάτω στιγμιότυπο οθόνης. Η καρτέλα Βιβλιοθήκες είναι το σημείο όπου προστίθενται στο έργο τα αρχεία JAR HBase και Hadoop:

Eclipse Java Καρτέλα "Δημιουργία βιβλιοθηκών διαδρομών" με προσθήκη εξωτερικών αρχείων JAR HBase και Hadoop

Σε αυτό το βήμα, προσθέτουμε τα σχετικά JAR HBase στο Java έργο όπως φαίνεται στο στιγμιότυπο οθόνης.

  • Σημαντικά JAR που θα προστεθούν: hbase-0.94.8.jar και hadoop-core-1.1.2.jar.
  • Μεταβείτε στην καρτέλα Βιβλιοθήκες.
  • Πατήστε την επιλογή Προσθήκη εξωτερικών JAR.
  • Επιλέξτε τα απαραίτητα σημαντικά JAR.
  • Πατήστε το κουμπί Τέλος για να προσθέσετε αυτά τα αρχεία στο "src" του Java έργο στην ενότητα Βιβλιοθήκες.

Αφού προστεθούν τα JAR, εμφανίζονται στην τοποθεσία "src" του έργου, όπως φαίνεται παρακάτω:

Eclipse Εξερεύνηση έργου που εμφανίζει τα πρόσθετα αρχεία JAR HBase και Hadoop στον πηγαίο κώδικα του έργου

Όλα τα αρχεία JAR που εμπίπτουν στο έργο είναι πλέον έτοιμα για χρήση με το οικοσύστημα Hadoop.

Βήμα 3) Δημιουργήστε τη σύνδεση HBase

Σε αυτό το βήμα, χρησιμοποιώντας το HBaseConnection.java, η σύνδεση HBase δημιουργείται μέσω Java κωδικοποίηση.

Στις Eclipse στο επάνω μενού, εκτελέστε ένα Java πρόγραμμα όπως φαίνεται παρακάτω: Εκτέλεση -> Εκτέλεση ως -> Java Εφαρμογή. Το παρακάτω μενού δείχνει το πρόγραμμα που εκκινείται:

Eclipse Εκτέλεση ως Java Μενού εφαρμογής που εκκινεί το πρόγραμμα HBaseConnection

  • Επιλέξτε Εκτέλεση.
  • Επιλέξτε Εκτέλεση ως Java Εφαρμογή.
  • Αυτός ο κώδικας δημιουργεί μια σύνδεση με το HBase μέσω Java API.
  • Μετά την εκτέλεση αυτού του κώδικα, ο πίνακας "guru99" δημιουργείται στο HBase με δύο οικογένειες στηλών με ονόματα "education" και "projects". Προς το παρόν, μόνο το κενό σχήμα δημιουργείται στο HBase.

Το παρακάτω απόσπασμα κώδικα αναδεικνύει το HTableDescriptή και κλήσεις addFamily που δημιουργούν το σχήμα πίνακα:

Java κώδικα χρησιμοποιώντας HTableDescriptή και addFamily για να ορίσετε τον πίνακα guru99 με οικογένειες στηλών εκπαίδευσης και έργων

Από το παραπάνω στιγμιότυπο οθόνης, εκτελούμε τις ακόλουθες λειτουργίες:

  • Χρήση 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 επιβεβαιώνει τον νέο πίνακα, όπως φαίνεται παρακάτω:

Έξοδος εντολής λίστας κελύφους HBase που δείχνει ότι δημιουργήθηκε ο πίνακας guru99

  • 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.

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

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

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

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

Το παράδειγμα χρησιμοποιεί HBaseAdmin και HTableDescriptή, και τα δύο έχουν καταργηθεί από την έκδοση HBase 1.0. Ο σύγχρονος κώδικας λαμβάνει ένα αντικείμενο Admin από ένα Connection μέσω του ConnectionFactory και δημιουργεί το σχήμα με τον ΠίνακαDescriptorBuilder και ColumnFamilyDescriptήBuilder. Η λογική δημιουργίας πίνακα παραμένει η ίδια.

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

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

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

Ναί. GitHub Copilot μπορεί να δημιουργήσει εντολές κελύφους HBase και Java κώδικας πελάτη για δημιουργία, τροποποίηση και απόρριψηping πίνακες από ένα σύντομο σχόλιο. RevΕλέγξτε την έξοδό του για το σωστό όνομα πίνακα, τις οικογένειες στηλών και το τρέχον API διαχειριστή πριν το εκτελέσετε.

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