HBase Crea tabella con Java Esempio di API e shell
⚡ Riepilogo intelligente
HBase memorizza i dati in tabelle ed è possibile creare e gestire tali tabelle in due modi: tramite Java API con HTableDescriptoppure e HBaseAdmin, o direttamente nella shell di HBase utilizzando il comando create.
Come creare una tabella in HBase con Java API
In HBase, le tabelle possono essere create in due modi: tramite il Java API e tramite la shell HBase. Questa sezione tratta Java API, che consente a un'applicazione di creare tabelle e caricare dati in modo programmatico come parte di un processo più ampio.
Attraverso Java API, possiamo creare tabelle in HBase e anche caricare dati nelle tabelle utilizzando Java programmazione. Le due cose che abbiamo impostato qui sono:
- Stabilire una connessione con HBase tramite Java API.
- utilizzando Eclipse per Java programmazione, debug e test.
Di seguito sono riportati i passaggi per creare tabelle in HBase tramite Java API.
Passaggio 1) Creare un Java Proietta dentro Eclipse
In questo passaggio, creeremo un file Java progetto in Eclipse per la connessione HBase, denominata "HbaseConnection".
Il nuovo Java La finestra di dialogo del progetto riportata di seguito mostra la configurazione del progetto "HbaseConnection":
Se osserviamo la schermata qui sopra:
- Inserisci il nome del progetto in questa casella. Nel nostro caso, il nome del progetto è "HbaseConnection".
- Seleziona questa casella per specificare la posizione predefinita in cui salvare i dati. In questo caso, il percorso è /home/hduser/work/HbaseConnection.
- Seleziona la casella per il Java ambiente qui. In questo caso JavaSE-1.7 è il Java edizione.
- Scegli l'opzione relativa alla posizione in cui desideri salvare il file. Nel nostro caso, abbiamo selezionato la seconda opzione, "Crea una cartella separata per i file sorgente e i file di classe".
- Fai clic sul pulsante Fine, che crea il progetto “HbaseConnection” in Eclipse e apre il Eclipse home page.
Passaggio 2) Configurare il percorso di compilazione in Eclipse
Sulla Eclipse Nella pagina iniziale, segui questi passaggi per aprire la configurazione del percorso di compilazione:
Right click on project -> Select Build Path -> Configure build path
Lo screenshot qui sotto mostra il menu contestuale che si apre cliccando con il tasto destro del mouse per configurare il percorso di compilazione:
Dallo screenshot qui sopra:
- Fai clic con il pulsante destro del mouse su un progetto.
- Seleziona il percorso di compilazione.
- Seleziona Configura percorso di compilazione.
Dopo aver cliccato su Configura percorso di compilazione, si apre un'altra finestra, mostrata nello screenshot qui sotto. Nella scheda Librerie vengono aggiunti al progetto i file JAR di HBase e Hadoop:
In questo passaggio, aggiungiamo i JAR HBase pertinenti al Java progetto come mostrato nello screenshot.
- File JAR importanti da aggiungere: hbase-0.94.8.jar e hadoop-core-1.1.2.jar.
- Vai alla scheda Biblioteche.
- Seleziona l'opzione Aggiungi JAR esterni.
- Selezionare i file JAR importanti richiesti.
- Premi il pulsante Fine per aggiungere questi file alla cartella “src” del Java progetto nell'ambito delle Biblioteche.
Dopo l'aggiunta dei file JAR, questi appariranno nella directory "src" del progetto, come mostrato di seguito:
Tutti i file JAR relativi al progetto sono ora pronti per essere utilizzati con l'ecosistema Hadoop.
Passaggio 3) Stabilire la connessione HBase
In questo passaggio, utilizzando HBaseConnection.java, viene stabilita la connessione HBase tramite Java codifica.
Sulla Eclipse menu principale, esegui un Java programma come mostrato di seguito: Esegui -> Esegui come -> Java Applicazione. Il menu sottostante mostra il programma che verrà avviato:
- Seleziona Esegui.
- Seleziona Esegui come Java Applicazione.
- Questo codice stabilisce una connessione con HBase tramite Java API.
- Dopo l'esecuzione di questo codice, la tabella "guru99" viene creata in HBase con due famiglie di colonne denominate "education" e "projects". Al momento, in HBase viene creato solo uno schema vuoto.
Il frammento di codice seguente evidenzia l'HTableDescriptoppure e le chiamate addFamily che creano lo schema della tabella:
Come si evince dallo screenshot qui sopra, stiamo eseguendo le seguenti funzioni:
- Utilizzando HTableDescriptOppure, possiamo creare la tabella "guru99" in HBase.
- Utilizzando il metodo addFamily, aggiungiamo "education" e "projects" come famiglie di colonne alla tabella "guru99".
Il codice seguente stabilirà una connessione con HBase e creerà la tabella "guru99" con due famiglie di colonne. Inserisci questo codice nel documento 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......"); } }
Questo è il codice richiesto che devi inserire in HBaseConnection.java prima di eseguire il Java .
Dopo l'esecuzione, questo programma stabilisce una connessione con HBase e, a sua volta, crea una tabella con i nomi delle colonne.
- Il nome della tabella è "guru99".
- Le famiglie di colonne sono "istruzione" e "progetti".
Passaggio 4) Controlla la tabella creata in HBase
Possiamo verificare se la tabella "guru99" è stata creata con due famiglie di colonne in HBase utilizzando la shell di HBase con il comando "list". Il comando "list" fornisce informazioni su tutte le tabelle create in HBase.
L'esecuzione del comando list nella shell di HBase conferma la presenza della nuova tabella, come mostrato di seguito:
- Code Verifica nella shell di HBase eseguendo il comando "list".
- Se eseguiamo il comando "list", vengono visualizzate le tabelle create in HBase. Nel nostro caso, possiamo vedere che è stata creata la tabella "guru99".
HBase Crea tabella con Shell
Oltre alla Java Tramite l'API, è possibile creare una tabella direttamente dalla shell di HBase, che rappresenta il modo più rapido per configurare una tabella per test veloci. La sintassi per creare una tabella in HBase tramite la shell è la seguente:
Syntax: create <tablename>, <columnfamilyname>
Esempio:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
L'esempio precedente spiega come creare una tabella in HBase con il nome specificato in base alle specifiche per ogni famiglia di colonne. Inoltre, è possibile passarle anche alcuni attributi a livello di tabella.
create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
Qui il blocco {NAME=>'Edu', VERSIONS=>…} imposta una famiglia di colonne denominata "Edu" e il numero di versioni di celle che essa conserva. Il numero elevato è solo a scopo illustrativo; in pratica, VERSIONS è un valore piccolo come 3 o 5.
Elenca, descrivi e verifica le tabelle HBase
Creare una tabella è solo la prima parte della gestione delle tabelle in HBase. Una volta che la tabella "guru99" esiste, alcuni comandi generali consentono di ispezionarla e confermarne lo stato prima di leggere, scrivere o modificare i dati. È possibile eseguirli tutti da Guscio HBase.
Il comando list restituisce tutte le tabelle utente presenti in HBase:
hbase> list
Il comando describe mostra la struttura di una tabella, comprese le sue famiglie di colonne e se sono attualmente abilitate:
hbase> describe 'guru99'
Il comando exists verifica se una tabella è presente, mentre is_enabled indica se la tabella può accettare operazioni di scrittura:
hbase> exists 'guru99' hbase> is_enabled 'guru99'
Questi controlli di sola lettura possono essere eseguiti in qualsiasi momento in tutta sicurezza. Rappresentano il modo più rapido per verificare che una tabella sia stata creata correttamente e per esaminare le sue famiglie di colonne prima di caricare i dati.
Modificare una tabella HBase
Lo schema di una tabella HBase non è fisso dopo la creazione. Il comando `alter` modifica le famiglie di colonne e gli attributi di ambito della tabella senza ricrearla. A seconda della versione di HBase in uso, potrebbe essere necessario disabilitare prima la tabella, quindi eseguire `alter` e riabilitarla.
Per aggiungere una nuova famiglia di colonne alla tabella "guru99":
hbase> alter 'guru99', {NAME => 'contact'}
Per impostare quante versioni di una famiglia di colonne vengono conservate:
hbase> alter 'guru99', NAME => 'education', VERSIONS => 5
Per eliminare una famiglia di colonne dalla tabella:
hbase> alter 'guru99', {NAME => 'contact', METHOD => 'delete'}
È inoltre possibile modificare gli attributi dell'ambito della tabella. Ad esempio, è possibile contrassegnare la tabella come di sola lettura oppure impostare la dimensione massima del file della regione a 128 MB:
hbase> alter 'guru99', READONLY hbase> alter 'guru99', MAX_FILESIZE => '134217728'
Poiché il comando alter riscrive lo schema, pianifica attentamente le modifiche su una tabella di produzione e conferma il risultato in seguito con describe.
Disabilitare, abilitare ed eliminare tabelle HBase
Per rimuovere una tabella o applicare determinate modifiche, HBase richiede prima di disabilitarla. La disabilitazione mette la tabella offline, impedendo a qualsiasi client di leggerla o scriverci, garantendo così la sicurezza delle modifiche strutturali.
Disabilita una tabella e verifica il suo stato con is_disabled:
hbase> disable 'guru99' hbase> is_disabled 'guru99'
Riattiva la tabella per riprendere le operazioni di lettura e scrittura:
hbase> enable 'guru99'
Una tabella deve essere disabilitata prima di poter essere trascinata. Trascinaping elimina definitivamente la tabella e tutti i suoi dati, quindi usatelo con cautela:
hbase> disable 'guru99' hbase> drop 'guru99'
Per rimuovere più tabelle contemporaneamente, drop_all elimina ogni tabella il cui nome corrisponde a un'espressione regolare. Insieme, create, alter, disable, enable e drop coprono l'intero ciclo di vita di gestione dei dati nelle tabelle HBase.







