Comandi della shell HBase con esempi

⚡ Riepilogo intelligente

I comandi della shell di HBase consentono di gestire tabelle e dati direttamente da un prompt interattivo, raggruppati in comandi generali, comandi di gestione delle tabelle come create ed drop, comandi di manipolazione dei dati come put e get e comandi di replica del cluster.

  • Comandi generali: status, version, table_help e whoami riportano lo stato del cluster e le informazioni sull'utente.
  • 🗂️ Gestione delle tabelle: creare, elencare, descrivere, disabilitare, abilitare, eliminare e modificare le tabelle di costruzione e rimodellamento.
  • Manipolazione dei dati: inserire, ottenere, eliminare, eliminare tutto, troncare, contare e scansionare i valori delle celle.
  • 🔁 Cluster replicazione: I comandi add_peer, remove_peer, start_replication e stop_replication gestiscono la replica dei dati.
  • Attributo TTL: Time To Live fa scadere automaticamente le righe delle famiglie di colonne dopo un numero predefinito di secondi.
  • 🤖 Assistenza tramite intelligenza artificiale: Gli assistenti basati sull'intelligenza artificiale generano e spiegano i comandi della shell HBase a partire da prompt in linguaggio naturale.

Comandi shell di HBase con esempi per tabelle, dati e replica del cluster

Come interagire con HBase utilizzando i comandi della shell e Java API

Dopo aver installato correttamente HBase su Hadoop, otteniamo una shell interattiva per eseguire vari comandi e svolgere diverse operazioni. Utilizzando questi comandi, possiamo effettuare molteplici operazioni sulle tabelle di dati, ottenendo una maggiore efficienza nell'archiviazione dei dati e un'interazione più flessibile per il client.

Possiamo interagire con HBase in due modi:

  • Modalità shell interattiva HBase e
  • Attraverso Java API.

In HBase, la modalità shell interattiva viene utilizzata per interagire con HBase per operazioni sulle tabelle, gestione delle tabelle e modellazione dei dati. Utilizzando la Java Modello API, possiamo eseguire tutti i tipi di operazioni su tabelle e dati in HBase. Possiamo interagire con HBase utilizzando entrambi questi metodi. L'unica differenza tra i due è che Java L'API utilizza Java Il codice viene utilizzato per connettersi a HBase, mentre la modalità shell utilizza i comandi shell per connettersi a HBase.

Prima di procedere, riepiloghiamo brevemente HBase:

  • Utilizza HBase Hadoop HBase è un sistema di archiviazione per memorizzare grandi quantità di dati. È composto da server master e server di regione.
  • I dati che verranno memorizzati in HBase saranno organizzati in regioni. Queste regioni verranno ulteriormente suddivise e archiviate su più server di regione.
  • Questi comandi di shell permettono al programmatore di definire schemi di tabella e operazioni sui dati utilizzando l'interazione completa in modalità shell.
  • Qualunque comando utilizziamo, esso si rifletterà nel modello dati di HBase.
  • Utilizziamo i comandi della shell HBase negli interpreti di script del sistema operativo, come la shell Bash.
  • La shell Bash è l'interprete di comandi predefinito per la maggior parte Linux e distribuzioni del sistema operativo Unix.
  • Le versioni avanzate di HBase forniscono comandi shell con riferimenti orientati agli oggetti in stile JRuby per le tabelle.
  • Le variabili di riferimento alle tabelle possono essere utilizzate per eseguire operazioni sui dati nella modalità shell di HBase.

Per esempio:

  • In questo tutorial, abbiamo creato una tabella in cui 'education' rappresenta il nome della tabella e corrisponde al nome della colonna "guru99".
  • In alcuni comandi, "guru99" rappresenta di per sé il nome di una tabella.

Comandi generali

In HBase, i comandi generali sono suddivisi nelle seguenti categorie:

  • Stato
  • Versione
  • Table_help (scansiona, rilascia, ottieni, metti, disabilita, ecc.)
  • Chi sono

Per accedere alla shell di HBase, è necessario innanzitutto eseguire il codice indicato di seguito.

hbase Shell

Una volta entrati nella shell di HBase, possiamo eseguire tutti i comandi shell menzionati di seguito. Con l'aiuto di questi comandi, possiamo effettuare tutti i tipi di operazioni sulle tabelle in modalità shell di HBase. Il prompt della shell interattiva appare come mostrato di seguito:

Prompt interattivo della shell HBase aperto con il comando hbase shell

Esaminiamo tutti questi comandi e il loro utilizzo uno per uno con un esempio.

Stato

Syntax:status

Questo comando fornisce dettagli sullo stato del sistema, come il numero di server presenti nel cluster, il numero di server attivi e il valore medio del carico. È inoltre possibile passare parametri specifici a seconda del livello di dettaglio desiderato per le informazioni sullo stato del sistema. I parametri possono essere "summary", "simple" o "detailed"; il parametro predefinito è "summary".

Di seguito, abbiamo mostrato come è possibile passare diversi parametri al comando status. Osservando lo screenshot sottostante, avremo un'idea più chiara.

hbase(main):001:0>status
hbase(main):002:0>status 'simple'
hbase(main):003:0>status 'summary'
hbase(main):004:0> status 'detailed'

L'output dello stato è mostrato di seguito:

Output del comando di stato della shell HBase che mostra i server attivi, i server non funzionanti e il carico medio.

Quando eseguiamo questo comando di stato, otteniamo informazioni sul numero di server presenti, server non funzionanti e carico medio del server. In questo caso, lo screenshot mostra informazioni come 1 server attivo, 1 server non funzionante e un carico medio di 7.0000.

Versione

Syntax: version

L'output della versione è mostrato di seguito:

Comando shell di HBase per visualizzare la versione di HBase installata

  • Questo comando visualizzerà la versione di HBase attualmente in uso in modalità riga di comando.
  • Se si esegue il comando version, l'output sarà quello mostrato sopra.

Aiuto tabella

Syntax:table_help

L'output di table_help è mostrato di seguito:

Elenco dell'output di table_help nella shell di HBase, utilizzo dei comandi create e get_table

Questo comando guida:

  • Cosa sono i comandi con riferimento a tabelle e come utilizzarli.
  • Verranno illustrati i diversi utilizzi dei comandi della shell di HBase e le relative sintassi.
  • Nella schermata qui sopra, viene mostrata la sintassi dei comandi "create" e "get_table" e il loro utilizzo. Possiamo manipolare la tabella tramite questi comandi una volta che è stata creata in HBase.
  • Fornirà i comandi per la manipolazione delle tabelle, come put, get, e tutte le altre informazioni sui comandi.

whoami

Syntax: Whoami

L'output di whoami è mostrato di seguito:

Il comando whoami della shell HBase restituisce l'utente hduser corrente e i gruppi

Il comando "whoami" viene utilizzato per restituire le informazioni sull'utente HBase corrente dal cluster HBase. Fornirà informazioni come:

  • Gruppi presenti in HBase.
  • Le informazioni sull'utente; ad esempio, in questo caso "hduser" rappresenta il nome utente come mostrato nello screenshot.

TTL (Time To Live) – Attributo

In HBase, le famiglie di colonne possono essere impostate su valori temporali in secondi tramite TTL. HBase eliminerà automaticamente le righe una volta raggiunto il tempo di scadenza. Questo attributo si applica a tutte le versioni di una riga, inclusa la versione corrente.

Il valore TTL codificato in HBase per la riga è specificato in UTC. Questo attributo viene utilizzato con i comandi di gestione delle tabelle. Di seguito sono riportate le principali differenze tra la gestione del TTL e i TTL delle famiglie di colonne:

  • I TTL delle celle sono espressi in unità di millisecondi anziché secondi.
  • Il TTL di una cella non può estendere la durata effettiva di una cella oltre l'impostazione TTL a livello di famiglia di colonne.

Comandi per la gestione delle tabelle

Questi comandi consentiranno ai programmatori di creare tabelle e schemi di tabelle con righe e famiglie di colonne. Di seguito sono riportati i comandi di gestione delle tabelle:

  • Crea
  • Lista
  • Descrivere
  • Disabilita
  • Disabilitare tutto
  • Consentire a tutti
  • Attiva tutto
  • Cadere
  • Rilascia_tutto
  • Mostra_filtri
  • Età
  • Alter_status

Analizziamo diversi utilizzi dei comandi in HBase con un esempio.

Crea

Syntax: create <tablename>, <columnfamilyname>

Esempio:-

hbase(main):001:0> create 'education' ,'guru99'
0 rows(s) in 0.312 seconds
=>Hbase::Table – education

Il risultato del comando create è mostrato di seguito:

Comando di creazione shell HBase per la creazione della tabella education con la famiglia di colonne guru99

L'esempio precedente spiega come creare una tabella in HBase con il nome specificato in base alle specifiche per ogni famiglia di colonne. Inoltre, possiamo anche passarvi alcuni attributi di ambito tabella. Per verificare se la tabella 'education' è stata creata o meno, utilizziamo il comando "list" riportato di seguito. Vedi anche creazione di tabelle HBase con Java e conchiglia.

Lista

Syntax:list

L'output dell'elenco è mostrato di seguito:

Il comando HBase shell list mostra otto tabelle esistenti in HBase

  • Il comando "list" visualizzerà tutte le tabelle presenti o create in HBase.
  • L'output mostrato nella schermata precedente visualizza attualmente le tabelle esistenti in HBase.
  • In questa schermata si può notare che in HBase sono presenti un totale di 8 tabelle.
  • Possiamo filtrare i valori di output dalle tabelle passando parametri opzionali tramite espressioni regolari.

Descrivere

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

L'output della descrizione è mostrato di seguito:

Output del comando HBase shell describe che illustra in dettaglio le famiglie di colonne della tabella education

Questo comando descrive la tabella denominata.

  • Fornirà maggiori informazioni sulle famiglie di colonne presenti nella tabella menzionata.
  • Nel nostro caso, viene fornita la descrizione della tabella "istruzione".
  • Fornirà informazioni sul nome della tabella con le famiglie di colonne, i filtri associati, le versioni e altri dettagli.

disable

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

L'output di disabilitazione è mostrato di seguito:

Comando di disabilitazione della shell HBase che mette offline la tabella education

  • Questo comando avvierà la disabilitazione della tabella specificata.
  • Se una tabella deve essere eliminata o rimossa, prima deve essere disabilitata.

Qui, nella schermata qui sopra, stiamo disabilitando la funzione di istruzione della tabella.

disabilitare tutto

 Syntax: disable_all<"matching regex"
  • Questo comando disabiliterà tutte le tabelle che corrispondono alla regex specificata.
  • L'implementazione è la stessa del comando drop (tranne per l'aggiunta di un'espressione regolare per la corrispondenza).
  • Una volta disabilitata la tabella, l'utente può eliminarla da HBase.
  • Prima di eliminare o rilasciareping una tabella, prima deve essere disabilitata.

Consentire a tutti

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

L'output di abilitazione è mostrato di seguito:

Comando HBase shell enable per riattivare la tabella education disabilitata

  • Questo comando avvierà l'abilitazione della tabella specificata.
  • Qualunque sia la tabella disabilitata, per ripristinarla al suo stato precedente utilizziamo questo comando.
  • Se una tabella è inizialmente disabilitata e non viene eliminata o cancellata, e se desideriamo riutilizzarla, dobbiamo abilitarla utilizzando questo comando.
  • Nella schermata qui sopra, stiamo abilitando la tabella "istruzione".

mostra_filtri

Syntax: show_filters

L'output di show_filters è mostrato di seguito:

L'output di show_filters della shell HBase elenca i filtri HBase disponibili

Questo comando visualizza tutti i filtri presenti in HBase, come ColumnPrefixFilter, TimestampsFilter, PageFilter, FamilyFilter, ecc.

cadere

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

L'output del drop è mostrato di seguito:

Comando di eliminazione nella shell HBase per cancellare la tabella relativa all'istruzione dei disabili

Per il comando drop, dobbiamo osservare i seguenti punti:

  • Per eliminare la tabella presente in HBase, dobbiamo prima disabilitarla.
  • Per eliminare la tabella presente in HBase, dobbiamo prima disabilitarla.
  • Pertanto, per eliminare una tabella, è necessario prima disabilitarla utilizzando il comando disable.
  • Qui, nello screenshot qui sopra, stiamo rilasciandoping la tabella “istruzione”.
  • Prima di eseguire questo comando, è necessario disabilitare la tabella "education".

drop_all

Syntax: drop_all<"regex">
  • Questo comando eliminerà tutte le tabelle che corrispondono all'espressione regolare specificata.
  • Prima di eseguire questo comando, è necessario disabilitare le tabelle utilizzando il comando disable_all.
  • Le tabelle con espressioni regolari corrispondenti verranno eliminate da HBase.

è abilitato

Syntax: is_enabled 'education'

Questo comando verifica se la tabella specificata è abilitata o meno. Solitamente, c'è un po' di confusione tra le azioni del comando "enable" e "is_enabled", che chiariamo qui:

  • Supponiamo che una tabella sia disabilitata; per poterla utilizzare, dobbiamo abilitarla tramite il comando enable.
  • Il comando is_enabled verifica se la tabella è abilitata o meno.

alterare

Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5

Questo comando altera lo schema della famiglia di colonne. Per capire cosa fa esattamente, lo abbiamo spiegato qui con un esempio.

Esempi: In questi esempi, eseguiremo operazioni di comando ALTER su tabelle e sulle relative colonne. Eseguiremo operazioni come:

  • Modifica dei nomi delle famiglie di colonne singole e multiple.
  • Eliminazione dei nomi delle famiglie di colonne da una tabella.
  • Diverse altre operazioni utilizzano attributi di ambito con una tabella.

Per modificare o aggiungere la famiglia di colonne 'guru99_1' nella tabella 'education' dal valore corrente, mantenendo un massimo di 5 VERSIONI di cella. Qui, "education" è il nome della tabella creata in precedenza con il nome di colonna "guru99". Con l'aiuto di un comando ALTER, stiamo cercando di modificare lo schema della famiglia di colonne da guru99 a guru99_1, come mostrato di seguito:

Comando alter della shell HBase che modifica la famiglia di colonne della tabella education in guru99_1

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

È possibile utilizzare il comando ALTER anche su più famiglie di colonne. Ad esempio, definiremo due nuove colonne per la nostra tabella esistente "education", come mostrato di seguito:

Comando alter della shell HBase per aggiungere due nuove famiglie di colonne: guru99_2 e guru99_3

 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
  • Con questo comando possiamo modificare lo schema di più colonne contemporaneamente.
  • guru99_2 e guru99_3, come mostrato nello screenshot qui sopra, sono i due nuovi nomi di colonna che abbiamo definito per la tabella education.
  • Nella schermata precedente possiamo vedere come si utilizza questo comando.

In questo passaggio vedremo come eliminare una famiglia di colonne da una tabella. Per eliminare la famiglia di colonne 'f1' nella tabella 'education', utilizzare uno dei comandi seguenti. Il risultato è mostrato nello screenshot seguente:

Comando alter della shell HBase per eliminare una famiglia di colonne dalla tabella education

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

Con questo comando, stiamo cercando di eliminare lo spazio colonna denominato guru99_1 che abbiamo creato in precedenza nel primo passaggio. Come mostrato negli screenshot seguenti, vengono illustrati due passaggi: come modificare un attributo di ambito di tabella e come rimuovere l'attributo di ambito di tabella.

Comando alter della shell HBase per impostare l'attributo di ambito tabella MAX_FILESIZE

Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

Passaggio 1) È possibile modificare gli attributi a livello di tabella come MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, ecc. Questi possono essere inseriti alla fine; ad esempio, per modificare la dimensione massima di una regione a 128 MB o a qualsiasi altro valore di memoria, si utilizza questo comando.

Uso:

  • Possiamo utilizzare MAX_FILESIZE con la tabella come attributo di ambito, come mostrato sopra.
  • Il valore rappresentato in MAX_FILESIZE si riferisce alla memoria in byte.

NOTA: L'ambito della tabella MAX_FILESIZE sarà determinato da alcuni attributi presenti in HBase. MAX_FILESIZE rientra anche tra gli attributi dell'ambito della tabella.

Passaggio 2) È possibile rimuovere un attributo di ambito tabella anche utilizzando il metodo table_att_unset. Vedere il comando seguente:

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • La schermata qui sopra mostra il nome della tabella modificato con gli attributi di ambito.
  • Il metodo table_att_unset viene utilizzato per rimuovere gli attributi presenti nella tabella.
  • Nel secondo caso, stiamo annullando l'impostazione dell'attributo MAX_FILESIZE.
  • Dopo l'esecuzione del comando, verrà semplicemente rimosso l'attributo MAX_FILESIZE dalla tabella "education".

alter_status

 Syntax: alter_status 'education'

L'output di alter_status è mostrato di seguito:

Il comando alter_status della shell HBase mostra che una delle regioni è stata aggiornata.

  • Tramite questo comando è possibile ottenere lo stato del comando alter.
  • Indica il numero di regioni della tabella che hanno ricevuto lo schema aggiornato. È necessario specificare il nome della tabella.
  • Nella schermata qui sopra, viene mostrato 1/1 regioni aggiornate. Ciò significa che una regione è stata aggiornata. Successivamente, se l'operazione ha esito positivo, verrà visualizzato il messaggio "fatto".

Comandi di manipolazione dei dati

Questi comandi agiscono sulla tabella per manipolare i dati, ad esempio inserendo dati in una tabella, recuperando dati da una tabella, eliminando lo schema, ecc. I comandi che rientrano in questa categoria sono:

  • Contare
  • Mettere
  • Ottieni
  • Elimina
  • Cancella tutto
  • Troncare
  • Scansione

Analizziamo questi utilizzi dei comandi con un esempio. Vedi anche lettura e scrittura di dati HBase.

Contare

Syntax: count <'tablename'>, CACHE =>1000
  • Questo comando recupera il numero di righe in una tabella. Il valore restituito è il numero di righe.
  • Il conteggio corrente viene visualizzato per impostazione predefinita ogni 1000 righe.
  • L'intervallo di conteggio può essere specificato facoltativamente.
  • La dimensione predefinita della cache è di 10 righe.
  • Il comando count funzionerà velocemente se configurato con la cache corretta.

Esempio:

hbase> count 'guru99', CACHE=>1000

Il risultato del conteggio è mostrato di seguito:

Il comando di conteggio della shell HBase restituisce il numero di righe della tabella guru99

Questo esempio di conteggio recupera 1000 righe alla volta dalla tabella "guru99". Possiamo impostare un valore di cache inferiore se la tabella contiene più righe. Tuttavia, per impostazione predefinita, verrà recuperata una riga alla volta.

hbase>count 'guru99', INTERVAL => 100000
hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000

Supponiamo che la tabella "guru99" abbia un riferimento a una tabella, ad esempio g. Possiamo eseguire il comando count anche su tale riferimento, come mostrato di seguito:

hbase>g.count INTERVAL=>100000
hbase>g.count INTERVAL=>10, CACHE=>1000

Mettere

Syntax:  put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>

Questo comando viene utilizzato per le seguenti operazioni:

  • Verrà inserito un "valore" di cella in una tabella, riga o colonna definita o specificata.
  • Può facoltativamente includere un'indicazione oraria.

Esempio: Qui stiamo inserendo dei valori nella tabella "guru99" nella riga r1 e nella colonna c1.

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

Abbiamo inserito tre valori, 10, 15 e 30, nella tabella "guru99", come mostrato nello screenshot qui sotto.

Comando HBase shell put che inserisce i valori 10, 15 e 30 nella tabella guru99

Supponiamo che la tabella "guru99" abbia un riferimento a una tabella, ad esempio g. Possiamo anche eseguire il comando sul riferimento alla tabella, come:

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

L'output sarà quello mostrato nella schermata precedente dopo aver inserito i valori in "guru99". Per verificare che il valore di input sia stato inserito correttamente nella tabella, utilizziamo il comando "scan". Nella schermata seguente, possiamo vedere che i valori sono stati inseriti correttamente.

Output della scansione shell di HBase che conferma i valori inseriti nella tabella guru99

Code Estratto: Per esercitarsi

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

Dal frammento di codice, stiamo eseguendo le seguenti operazioni:

  • Qui stiamo creando una tabella chiamata 'guru99' con la colonna denominata "Edu".
  • Tramite il comando "put", inseriamo i valori nella riga denominata r1, colonna "Edu", della tabella "guru99".

Ottieni

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

Qui, Include TIMERANGE, TIMESTAMP, VERSIONS e FILTERS. Utilizzando questo comando, otterrai il contenuto di una riga o di una cella presente nella tabella. Inoltre, puoi aggiungere ulteriori parametri, come TIMESTAMP, TIMERANGE, VERSIONS, FILTERS, ecc., per ottenere il contenuto di una riga o di una cella specifica.

L'output seguente restituisce i valori della riga r1 e della colonna c1:

Comando shell HBase per ottenere la riga r1 e la colonna c1 dalla tabella guru99

Esempi:-

hbase> get 'guru99', 'r1', {COLUMN => 'c1'}

Per la tabella "guru99", i valori della riga r1 e della colonna c1 verranno visualizzati utilizzando questo comando, come mostrato nella schermata precedente.

hbase> get 'guru99', 'r1'

Per la tabella "guru99", i valori della riga r1 verranno visualizzati utilizzando questo comando.

hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}

Per la tabella "guru99", i valori della riga r1 nell'intervallo di tempo da ts1 a ts2 verranno visualizzati utilizzando questo comando.

hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}

Per la tabella "guru99", i valori della riga r1 e delle famiglie di colonne c1, c2 e c3 verranno visualizzati utilizzando questo comando.

Elimina

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Questo comando eliminerà il valore della cella in una riga o colonna specificata di una tabella.
  • La cella da eliminare deve corrispondere esattamente alle coordinate della cella eliminata.
  • Durante la scansione, l'eliminazione di una cella sopprime le versioni precedenti dei valori.

Esempio: Il comando di eliminazione seguente rimuove le celle r1 e c1 dalla tabella guru99:

Comando di eliminazione della shell HBase per rimuovere la cella r1 c1 dalla tabella guru99

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
  • L'esecuzione sopra riportata eliminerà la riga r1 dalla famiglia di colonne c1 nella tabella "guru99".
  • Supponiamo che la tabella “guru99” abbia un riferimento a una tabella, ad esempio g.
  • Possiamo eseguire il comando anche sul riferimento alla tabella, ad esempio hbase> g.delete 'guru99', 'r1', 'c1'”.

cancella tutto

Syntax: deleteall <'tablename'>, <'rowname'>
  • Questo comando eliminerà tutte le celle di una determinata riga.
  • Nella sintassi è possibile definire facoltativamente i nomi delle colonne e un timestamp.

Esempio: Il comando deleteall riportato di seguito rimuove tutte le celle nella riga r1:

Comando HBase shell deleteall che rimuove tutte le celle nella riga r1 della tabella guru99

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

Questo comando eliminerà tutte le righe e le colonne presenti nella tabella. Facoltativamente, è possibile specificare i nomi delle colonne.

Troncare

Syntax:  truncate <tablename>

Il comando truncate qui sotto svuota la tabella mantenendolaping il suo schema:

Disabilitazione del comando truncate della shell HBase, eliminapinge ricreando la tabella guru99

Dopo il troncamento di una tabella HBase, lo schema sarà presente ma non i record. Questo comando svolge 3 funzioni, elencate di seguito:

  • Disabilita la tabella se esiste già.
  • Elimina la tabella se esiste già.
  • Ricrea la tabella menzionata.

Scansione

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

Questo comando analizza l'intera tabella e ne visualizza il contenuto.

  • Possiamo passare diverse specifiche opzionali a questo comando di scansione per ottenere maggiori informazioni sulle tabelle presenti nel sistema.
  • Le specifiche dello scanner possono includere uno o più dei seguenti attributi.
  • Si tratta di TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW e STOPROW.
scan 'guru99'

Di seguito è riportato l'output della scansione:

Comando di scansione della shell HBase che visualizza le righe r1, r2 e r3 della tabella guru99

Nello screenshot qui sopra:

  • Mostra la tabella "guru99" con il nome della colonna e i relativi valori.
  • È costituito da tre valori di riga, r1, r2 e r3, per il singolo valore di colonna c1.
  • Visualizza i valori associati alle righe.

Esempi: - I diversi utilizzi del comando scan:

Comando Impiego
scansiona '.META.', {COLUMNS => 'info:regioninfo'} Visualizza tutte le informazioni sui metadati relative alle colonne presenti nelle tabelle di HBase.
scansiona 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} Visualizza il contenuto della tabella guru99 con le relative famiglie di colonne c1 e c2, limitando i valori a 10.
scansiona 'guru99', {COLUMNE => 'c1', INTERVALLO TEMPORALE => [1303668804, 1303668904]} Visualizza il contenuto di guru99 con il nome di colonna c1 con i valori presenti nell'intervallo di tempo specificato.
scansiona 'guru99', {RAW => vero, VERSIONI =>10} In questo comando, RAW=> true fornisce una funzionalità avanzata, come la visualizzazione di tutti i valori delle celle presenti nella tabella guru99.

Code Esempio: Innanzitutto, crea una tabella e inserisci i valori al suo interno. L'input è mostrato nello screenshot qui sotto:

Input shell HBase per la creazione della tabella guru99 e l'inserimento di valori versionati prima di una scansione raw

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

Se eseguiamo il comando di scansione:

Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}

Verrà visualizzato l'output mostrato di seguito:

Output grezzo della scansione della shell HBase che mostra più versioni di celle, incluso un valore eliminato

L'output mostrato nella schermata precedente fornisce le seguenti informazioni:

  • Scansione della tabella guru99 con attributi RAW=>true, VERSIONS=>1000.
  • Visualizzazione delle righe con famiglie di colonne e valori.
  • Nella terza riga, i valori visualizzati mostrano il valore eliminato presente nella colonna.
  • L'output visualizzato è casuale; non può essere nello stesso ordine dei valori che abbiamo inserito nella tabella.

Cluster Comandi di replica

  • Questi comandi funzionano nella modalità di configurazione del cluster di HBase.
  • Questi comandi vengono generalmente utilizzati per aggiungere e rimuovere nodi da un cluster, nonché per avviare e arrestare la replica.
Comando Funzionalità
aggiungi_peer Aggiunge nodi peer a un cluster per la replica.
hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod
rimuovi_peer Interrompe il flusso di replica definito ed elimina tutte le informazioni sui metadati relative al peer.
hbase> rimuovi_peer '1'
start_replica Riavvia tutte le funzionalità di replica.
hbase> start_replication
stop_replica Interrompe tutte le funzionalità di replica.
hbase>stop_replica

DOMANDE FREQUENTI

Digita exit o quit e premi Invio per uscire dalla shell interattiva di HBase e tornare al prompt del sistema operativo. La shell si apre con il comando hbase shell. Né exit né quit arrestano il servizio HBase; terminano solo la sessione della shell.

Sì. È possibile inviare comandi tramite pipe in modo non interattivo, ad esempio con `echo “list” | hbase shell`, oppure eseguire un file salvato con `hbase shell script.txt`. Poiché la shell è basata su JRuby, è anche possibile incorporare logica e cicli Ruby all'interno di file di script .rb.

La shell è un prompt interattivo JRuby per comandi manuali rapidi e amministrazione. Java L'API, che utilizza Connection, Admin e Table, è destinata alle applicazioni che creano tabelle e leggono o scrivono dati a livello programmatico. Entrambe accedono allo stesso cluster HBase e agli stessi dati.

L'errore "Tabella già esistente" si verifica quando il comando create ripete un nome già esistente, mentre l'errore "Tabella non disabilitata" si verifica quando si elimina o si modifica una tabella senza prima disabilitarla. Eseguire il comando disable 'table' prima di eliminare o modificare una tabella e utilizzare exists 'table' per verificare il nome prima di crearla.

Una famiglia di colonne HBase conserva un numero limitato di versioni con timestamp per cella, storicamente tre e una nelle versioni più recenti. È possibile impostare il conteggio con VERSIONS al momento della creazione o della modifica e richiedere versioni precedenti utilizzando {VERSIONS => n} in un comando di get o scan.

Una variabile di riferimento alla tabella è un oggetto shell restituito da g = get_table 'guru99'. Su di essa è possibile chiamare metodi come g.put, g.get o g.count, anziché ripetere il nome della tabella. Si tratta di una comoda scorciatoia in stile JRuby nella shell di HBase.

Gli assistenti di programmazione basati sull'IA e i modelli linguistici di grandi dimensioni generano comandi shell HBase a partire da richieste in linguaggio naturale, spiegano opzioni sconosciute come i filtri di scansione o il TTL e aiutano a individuare e risolvere gli errori. L'apprendimento automatico analizza anche le metriche del cluster per guidare la replica e l'ottimizzazione delle regioni, sebbene un ingegnere debba verificare ogni comando.

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 Suggerisce comandi shell HBase e script JRuby a partire da un breve commento, inclusi esempi di create, put, scan e alter. RevPrima di eseguirlo su un cluster reale, controlla l'output per verificare che il nome della tabella, le famiglie di colonne e la sintassi, come ad esempio VERSIONS, siano corretti.

Riassumi questo post con: