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.

  • Java API: Crea tabelle tramite codice con HTableDescriptoppure, Colonna HDescriptoppure, e HBaseAdmin.
  • 🐚 Shell create: Il comando create crea una tabella a partire da un nome e da una o più famiglie di colonne.
  • 🧬 Famiglie di colonne: Ogni tabella necessita di almeno una famiglia di colonne, definita al momento della creazione della tabella.
  • 🔧 Altare i tavoli: Il comando alter aggiunge famiglie di colonne, imposta le VERSIONS o modifica gli attributi a livello di tabella.
  • 🗑️ Ciclo di vita della tabella: Disabilita una tabella prima di modificarla o eliminarla, quindi riabilitala per riprendere le operazioni di scrittura.
  • 🤖 Assistenza tramite intelligenza artificiale: Gli assistenti IA elaborano i comandi di creazione, modifica ed eliminazione e rivedono la progettazione delle famiglie di colonne.

HBase crea tabella con Java Esempio di API e comando shell

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":

Eclipse New Java Finestra di dialogo del progetto che crea il progetto HbaseConnection con un JavaAmbiente SE-1.7

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:

Eclipse Progetto, fai clic con il pulsante destro del mouse sul menu, seleziona Percorso di compilazione, quindi Configura 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:

Eclipse Java Scheda Librerie del percorso di compilazione per aggiungere file JAR esterni 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:

Eclipse Esplora progetti che mostra i file JAR di HBase e Hadoop aggiunti nella directory sorgente del progetto.

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:

Eclipse Correre come Java Menu Applicazione che avvia il programma HBaseConnection

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

Java codice che utilizza HTableDescriptoppure e addFamily per definire la tabella guru99 con le famiglie di colonne education e projects

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:

Output del comando HBase shell list che mostra la creazione della tabella guru99

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

DOMANDE FREQUENTI

La prassi migliore è mantenere basso il numero di famiglie di colonne, idealmente da una a tre. HBase esegue il flush e la compattazione di tutte le famiglie di una regione insieme, quindi un numero eccessivo di famiglie distribuisce i dati su più file e rallenta le operazioni di lettura e scrittura. Quando possibile, raggruppa le colonne correlate in un'unica famiglia.

No. In fase di creazione si definiscono solo le famiglie di colonne. I qualificatori di colonna sono dinamici e possono essere aggiunti a qualsiasi riga durante la scrittura dei dati. Questa struttura flessibile consente a ciascuna riga di contenere colonne diverse senza dover prima modificare la tabella.

Utilizza il comando `truncate 'guru99'`, che disabilita la tabella, la elimina e la ricrea con le stesse famiglie di colonne. Lo schema rimane intatto mentre ogni riga viene rimossa. Questo metodo è più veloce e pulito rispetto all'eliminazione delle righe una alla volta.

L'esempio utilizza HBaseAdmin e HTableDescriptoppure, entrambi deprecati da HBase 1.0. Il codice moderno ottiene un oggetto Admin da una Connection tramite ConnectionFactory e costruisce lo schema con TableDescriptoBuilder e ColumnFamilyDescriptoBuilder. La logica di creazione della tabella rimane la stessa.

VERSIONS imposta il numero di versioni con timestamp di ciascuna cella di una famiglia di colonne che vengono conservate. Il valore predefinito è 1. La richiesta di versioni precedenti tramite un'operazione di get o scan le restituisce fino al superamento del numero di versioni conservate, dopodiché la compattazione rimuove le celle più vecchie.

HBase è ideale per dataset molto grandi e sparsi che richiedono operazioni di lettura e scrittura casuali veloci su Hadoop e HDFS. Gli utilizzi tipici includono dati di serie temporali, messaggistica e analisi in tempo reale, dove le tabelle raggiungono miliardi di righe distribuite su molti nodi.

Gli assistenti di programmazione basati sull'IA e i grandi modelli linguistici redigono comandi di creazione, modifica ed eliminazione da prompt in linguaggio naturale, spiegano la progettazione delle famiglie di colonne e segnalano operazioni rischiose come l'eliminazioneping una tabella. L'apprendimento automatico può anche analizzare i modelli di accesso per consigliare layout di riga-chiave e di famiglia migliori, sebbene un ingegnere debba verificare ogni suggerimento.

Sì. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. Copilota GitHub può generare comandi shell HBase e Java codice client per la creazione, la modifica e il rilascioping tabelle da un breve commento. RevPrima di eseguirlo, controlla l'output per verificare il nome corretto della tabella, le famiglie di colonne e l'API di amministrazione corrente.

Riassumi questo post con: