Comandi della shell HBase con esempi
Dopo aver installato con successo HBase su Hadoop, otteniamo una shell interattiva per eseguire vari comandi ed eseguire diverse operazioni. Utilizzando questi comandi, possiamo eseguire più operazioni su tabelle di dati che possono fornire una migliore efficienza di archiviazione dei dati e un'interazione flessibile da parte del cliente.
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. Usando Java Modello API, possiamo eseguire tutti i tipi di operazioni su tabelle e dati in HBase. Possiamo interagire con HBase utilizzando entrambi i metodi.
L'unica differenza tra questi due è Java L'API utilizza il codice Java per connettersi con HBase, mentre la modalità shell utilizza i comandi shell per connettersi con HBase.
Rapido overcap di HBase prima di procedere-
- Utilizza HBase Hadoop file come sistema di archiviazione per archiviare grandi quantità di dati. Hbase è costituito da server master e server regionali
- I dati che verranno archiviati in HBase saranno sotto forma di regioni. Inoltre, queste regioni verranno suddivise e archiviate in server di più regioni
- Questi comandi shell consentono al programmatore di definire schemi di tabelle e operazioni sui dati utilizzando l'interazione completa in modalità shell
- Qualunque comando utilizziamo, si rifletterà nel modello dati HBase
- Utilizziamo i comandi della shell HBase negli interpreti di script del sistema operativo come la shell Bash
- La shell Bash è l'interprete dei comandi predefinito per la maggior parte Linux e Unix distribuzioni operative
- Le versioni avanzate di HBase forniscono comandi shell, riferimenti orientati agli oggetti in stile jruby per le tabelle
- Le variabili di riferimento della tabella possono essere utilizzate per eseguire operazioni sui dati in modalità shell 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 esso stesso il nome di una tabella.
Comandi generali
In Hbase, i comandi generali sono classificati nei seguenti comandi
- Stato dell'ordine
- Versione
- Table_help (scansiona, rilascia, ottieni, metti, disabilita, ecc.)
- Chi sono
Per accedere al comando della shell HBase, prima di tutto, dobbiamo eseguire il codice come menzionato di seguito
hbase Shell
Una volta entrati nella shell HBase, possiamo eseguire tutti i comandi shell menzionati di seguito. Con l'aiuto di questi comandi, possiamo eseguire tutti i tipi di operazioni sulle tabelle nella modalità shell HBase.
Esaminiamo tutti questi comandi e il loro utilizzo uno per uno con un esempio.
Stato dell'ordine
Syntax:status
Questo comando fornirà dettagli sullo stato del sistema, come il numero di server presenti nel cluster, il conteggio dei server attivi e il valore medio del carico. Puoi anche passare qualsiasi parametro particolare a seconda di quanto dettagliato vuoi conoscere lo stato del sistema. I parametri possono essere 'riepilogo', 'semplice' o 'dettagliato', il parametro predefinito fornito è "riepilogo".
Di seguito abbiamo mostrato come passare diversi parametri al comando status.
Se osserviamo la schermata qui sotto, avremo un'idea migliore.
hbase(main):001:0>status hbase(main):002:0>status 'simple' hbase(main):003:0>status 'summary' hbase(main):004:0> status 'detailed'
Quando eseguiamo lo stato di questo comando, fornirà informazioni sul numero di server presenti, server morti e carico medio del server, qui nello screenshot mostra informazioni come- 1 server live, 1 server morto e 7.0000 di carico medio.
Versione
Syntax: version
- Questo comando visualizzerà la versione HBase attualmente utilizzata in modalità comando
- Se esegui il comando version, fornirà l'output come mostrato sopra
Aiuto tabella
Syntax:table_help
Questo comando guida
- Cosa e come utilizzare i comandi con riferimento alla tabella
- Fornirà diversi utilizzi dei comandi della shell HBase e le relative sintassi
- Qui nella schermata sopra, mostra la sintassi di "creare" e "get_tabella” comando con il suo utilizzo. Possiamo manipolare la tabella tramite questi comandi una volta creata la tabella in HBase.
- Fornirà comandi per la manipolazione della tabella come put, get e tutte le altre informazioni sui comandi.
whoami
Sintassi:
Syntax: Whoami
Questo comando "whoami" viene utilizzato per restituire le informazioni utente HBase correnti dal cluster HBase.
Fornirà informazioni come
- Gruppi presenti in HBase
- Le informazioni sull'utente, ad esempio in questo caso "hduser" rappresentano il nome utente come mostrato nella schermata
TTL (Time To Live) – Attributo
In HBase, le famiglie di colonne possono essere impostate su valori temporali in secondi utilizzando TTL. HBase eliminerà automaticamente le righe una volta raggiunta la scadenza. Questo attributo si applica a tutte le versioni di una riga, anche alla versione corrente.
L'ora TTL codificata nell'HBase per la riga è specificata in UTC. Questo attributo viene utilizzato con i comandi di gestione delle tabelle.
Di seguito sono riportate importanti differenze tra la gestione TTL e i TTL della famiglia di colonne
- I TTL delle celle sono espressi in unità di millisecondi anziché secondi.
- I TTL di una cella non possono 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
- Creare
- Lista
- Descrivere
- Disabilita
- Disabilitare tutto
- permettere
- Attiva tutto
- Cadere
- Rilascia_tutto
- Mostra_filtri
- Età
- Alter_status
Esaminiamo i vari utilizzi dei comandi in HBase con un esempio.
Creare
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 fornito in base al dizionario o alle specifiche secondo la famiglia di colonne. Oltre a questo possiamo anche passarvi alcuni attributi con ambito tabella.
Per verificare se la tabella 'istruzione' è stata creata o meno, dobbiamo utilizzare il file "elenco" comando come menzionato di seguito.
Lista
Syntax:list
- Il comando "Elenco" visualizzerà tutte le tabelle presenti o create in HBase
- L'output mostrato nello screenshot sopra mostra attualmente le tabelle esistenti in HBase
- Qui in questo screenshot viene mostrato che sono presenti in totale 8 tabelle all'interno di HBase
- Possiamo filtrare i valori di output dalle tabelle passando parametri di espressione regolare opzionali
Descrivere
Syntax:describe <table name>
hbase(main):010:0>describe 'education'
Questo comando descrive la tabella denominata.
- Fornirà maggiori informazioni sulle famiglie di colonne presenti nella tabella citata
- Nel nostro caso, fornisce la descrizione della tabella “educazione”.
- 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'
- Questo comando inizierà a disabilitare la tabella denominata
- Se la tabella deve essere eliminata o eliminata, deve prima essere disabilitata
Qui, nello screenshot sopra stiamo disabilitando la formazione 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 delete (tranne l'aggiunta di regex per la corrispondenza)
- Una volta disabilitata la tabella, l'utente può eliminare la tabella da HBase
- Prima di eliminare o eliminare la tabella, è necessario disattivarla
permettere
Syntax: enable <tablename>
hbase(main):012:0>enable 'education'
- Questo comando inizierà ad abilitare la tabella denominata
- Qualunque sia la tabella disabilitata, per ripristinare lo stato precedente utilizziamo questo comando
- Se una tabella viene disabilitata in prima istanza e non viene eliminata o eliminata, e se vogliamo riutilizzare la tabella disabilitata, dobbiamo abilitarla utilizzando questo comando.
- Qui nello screenshot qui sopra stiamo abilitando la tabella “istruzione”.
mostra_filtri
Syntax: show_filters
Questo comando visualizza tutti i filtri presenti in HBase come ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter, ecc.
cadere
Syntax:drop <table name>
hbase(main):017:0>drop 'education'
Dobbiamo osservare i punti seguenti per il comando di rilascio
- Per eliminare la tabella presente in HBase, dobbiamo prima disabilitarla
- Per eliminare la tabella presente in HBase, dobbiamo prima disabilitarla
- Pertanto, la tabella da eliminare o eliminare prima deve essere disabilitata utilizzando il comando disattiva
- Qui nello screenshot sopra stiamo eliminando 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 alla regex specificata
- Le tabelle devono essere disabilitate prima di eseguire questo comando utilizzando disattiva_all
- Le tabelle con espressioni di corrispondenza regex verranno eliminate da HBase
è abilitato
Syntax: is_enabled 'education'
Questo comando verificherà se la tabella denominata è abilitata o meno. Di solito, c'è un po' di confusione tra l'azione del comando "enable" e "is_enabled", che chiariremo qui
- Supponiamo che una tabella sia disabilitata, per utilizzare quella tabella dobbiamo abilitarla utilizzando il comando abilita
- Il comando is_enabled controllerà 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 di modifica sulle tabelle e sulle sue colonne. Eseguiremo operazioni come
- Modifica di nomi di famiglie di colonne singole o multiple
- Eliminazione dei nomi delle famiglie di colonne dalla tabella
- Diverse altre operazioni che utilizzano gli attributi di ambito con la tabella
- Per modificare o aggiungere la famiglia di colonne 'guru99_1' nella tabella 'education' dal valore corrente per mantenere un massimo di 5 celle VERSIONI,
- "istruzione" è il nome della tabella creata in precedenza con il nome della colonna "guru99".
- Qui con l'aiuto di un comando alter stiamo provando a cambiare lo schema della famiglia di colonne in guru99_1 da guru99
hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
- È inoltre possibile utilizzare il comando alter anche su diverse famiglie di colonne. Ad esempio, definiremo due nuove colonne nella nostra tabella esistente "istruzione".
hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
- Possiamo modificare più di uno schema di colonna alla volta usando questo comando
- guru99_2 e guru99_3 come mostrato nello screenshot sopra sono i due nuovi nomi di colonna che abbiamo definito per la tabella education
- Possiamo vedere il modo di utilizzare questo comando nella schermata precedente
- In questo passaggio vedremo come eliminare la famiglia di colonne dalla tabella. Per eliminare la famiglia di colonne "f1" nella tabella "istruzione".
Utilizza uno di questi comandi di seguito,
hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'
- In questo comando, stiamo provando a eliminare il nome dello spazio colonna guru99_1 che abbiamo creato in precedenza nel primo passaggio
- Come mostrato nelle schermate seguenti, vengono mostrati due passaggi: come modificare l'attributo dell'ambito della tabella e come rimuovere l'attributo dell'ambito della tabella.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'
Passo 1) Puoi modificare gli attributi dell'ambito della 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 qualsiasi altro valore di memoria utilizziamo questo comando.
Uso:
- Possiamo utilizzare MAX_FILESIZE con la tabella come attributo di ambito come sopra
- Il numero rappresentato in MAX_FILESIZE è in termini di memoria in byte
NOTA: L'ambito della tabella degli attributi MAX_FILESIZE sarà determinato da alcuni attributi presenti nell'HBase. MAX_FILESIZE rientrano anche negli attributi dell'ambito della tabella.
Passo 2) Puoi anche rimuovere un attributo con ambito tabella utilizzando il metodo table_att_unset. Se vedi il comando
alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
- La schermata precedente mostra il nome della tabella modificato con gli attributi di ambito
- Il metodo table_att_unset viene utilizzato per annullare l'impostazione degli attributi presenti nella tabella
- Nella seconda istanza stiamo annullando l'attributo MAX_FILESIZE
- Dopo l'esecuzione del comando, verrà semplicemente annullato l'attributo MAX_FILESIZE dalla tabella "education".
alter_status
Syntax: alter_status 'education'
- Attraverso questo comando è possibile ottenere lo stato del comando alter
- Che indica il numero di aree della tabella che hanno ricevuto il nome della tabella di passaggio dello schema aggiornato
- Qui nella schermata sopra mostra 1/1 delle regioni aggiornate. Significa che ha aggiornato una regione. Successivamente, se ha avuto successo, verrà visualizzato il commento fatto.
Comandi di manipolazione dei dati
Questi comandi funzioneranno sulla tabella in relazione alla manipolazione dei dati come l'inserimento dei dati in una tabella, il recupero dei dati da una tabella e l'eliminazione dello schema, ecc.
I comandi che rientrano in questi sono
- Contare
- Mettere
- Ottieni
- Elimina
- Cancella tutto
- Troncare
- Scannerizzare
Esaminiamo l'utilizzo di questi comandi con un esempio.
Contare
Syntax: count <'tablename'>, CACHE =>1000
- Il comando recupererà il conteggio di un numero di righe in una tabella. Il valore restituito da questo è il numero di righe.
- Per impostazione predefinita, il conteggio corrente viene visualizzato ogni 1000 righe.
- L'intervallo di conteggio può essere specificato facoltativamente.
- La dimensione predefinita della cache è 10 righe.
- Il comando Count funzionerà velocemente quando è configurato con la cache corretta.
Esempio:
hbase> count 'guru99', CACHE=>1000
Questo conteggio di esempio recupera 1000 righe alla volta dalla tabella "Guru99".
Possiamo impostare la cache su un valore inferiore se la tabella è composta da più righe.
Ma per impostazione predefinita recupererà una riga alla volta.
hbase>count 'guru99', INTERVAL => 100000 hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000
Supponiamo che la tabella "Guru99" abbia qualche riferimento alla tabella come ad esempio g.
Possiamo eseguire il comando count sul riferimento alla tabella anche come 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 cose
- Verrà inserito un "valore" di cella nella tabella, riga o colonna definita o specificata.
- Facoltativamente coordinerà il timestamp.
Esempio:
- Qui stiamo inserendo i valori nella tabella "guru99" sotto la riga r1 e la 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
- Supponiamo che la tabella "Guru99" abbia qualche riferimento alla tabella come ad esempio g. Possiamo anche eseguire il comando anche sul riferimento alla tabella
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
- L'output sarà come mostrato nella schermata sopra dopo aver inserito i valori in "guru99".
Per verificare se il valore di input è inserito correttamente nella tabella, utilizziamo il comando "scan". Nella schermata seguente, possiamo vedere che i valori sono inseriti correttamente
Frammento di codice: 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
Dallo snippet di codice, stiamo facendo queste cose
- Qui stiamo creando una tabella denominata "guru99" con il nome della colonna "Edu".
- Utilizzando il comando "put", stiamo inserendo i valori nel nome della riga r1 nella colonna "Edu" nella tabella "guru99".
Ottieni
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Qui includono TIMERANGE, TIMESTAMP, VERSIONI e FILTRI.
Utilizzando questo comando, otterrai il contenuto di una riga o di una cella presente nella tabella. Oltre a ciò puoi anche aggiungere parametri aggiuntivi come TIMESTAMP, TIMERANGE,VERSIONS, FILTERS, ecc. per ottenere una particolare riga o contenuto di cella.
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 sopra
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 1 nell'intervallo di tempo ts1 e 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, c3 verranno visualizzati utilizzando questo comando
Elimina
Syntax:delete <'tablename'>,<'row name'>,<'column name'>
- Questo comando eliminerà il valore della cella nella tabella definita di riga o colonna.
- L'eliminazione deve e deve corrispondere esattamente alle coordinate delle celle eliminate.
- Durante la scansione, elimina cella sopprime le versioni precedenti dei valori.
Esempio:
hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
- L'esecuzione di cui sopra eliminerà la riga r1 dalla famiglia di colonne c1 nella tabella "guru99".
- Supponiamo che la tabella "guru99" abbia qualche riferimento alla tabella come ad esempio g.
- Possiamo eseguire il comando anche sul riferimento alla tabella hbase> g.cancella 'guru99', 'r1', 'c1′”.
cancella tutto
Syntax: deleteall <'tablename'>, <'rowname'>
- Questo comando eliminerà tutte le celle in una determinata riga.
- Possiamo definire facoltativamente i nomi delle colonne e il timestamp nella sintassi.
Esempio:-
hbase>deleteall 'guru99', 'r1', 'c1'
Ciò eliminerà tutte le righe e le colonne presenti nella tabella. Facoltativamente possiamo menzionare i nomi delle colonne.
Troncare
Syntax: truncate <tablename>
Dopo il troncamento di una tabella hbase, sarà presente lo schema ma non i record. Questo comando esegue 3 funzioni; quelli sono elencati di seguito
- Disabilita la tabella se è già presente
- Elimina la tabella se è già presente
- Ricrea la tabella menzionata
Scannerizzare
Syntax: scan <'tablename'>, {Optional parameters}
Questo comando esegue la scansione dell'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.
- Questi sono TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW e STOPROW.
scan 'guru99'
L'output come mostrato di seguito nella schermata
Nella schermata sopra
- Mostra la tabella "guru99" con il nome e i valori della colonna
- È costituito da tre valori di riga r1, r2, r3 per il valore di colonna singola c1
- Visualizza i valori associati alle righe
Esempi:-
I diversi usi del comando scan
Comando | Impiego |
---|---|
scansiona '.META.', {COLUMNS => 'info:regioninfo'} | Visualizza tutte le informazioni sui metadati relative alle colonne presenti nelle tabelle in HBase |
scansiona 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} | Visualizza il contenuto della tabella guru99 con le 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 della colonna c1 con i valori presenti tra il valore dell'attributo dell'intervallo di tempo menzionato |
scansiona 'guru99', {RAW => vero, VERSIONI =>10} | In questo comando RAW=> true fornisce funzionalità avanzate come visualizzare tutti i valori delle celle presenti nella tabella guru99 |
Esempio di codice:
Per prima cosa crea una tabella e inserisci i valori nella tabella
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
Schermata di input:
Se eseguiamo il comando scan
Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}
Verrà visualizzato l'output mostrato di seguito.
Schermata di output:
L'output mostrato nello screenshot sopra fornisce le seguenti informazioni
- Scansione della tabella guru99 con attributi RAW=>true, VERSIONS=>1000
- Visualizzazione di righe con famiglie e valori di colonne
- 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.
- Per aggiungere e rimuovere peer al cluster e per avviare e interrompere la replica, questi comandi vengono utilizzati in generale.
Comando | Funzionalità |
---|---|
aggiungi_peer | Aggiungi peer al cluster per replicare
hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod |
rimuovi_peer | Arresta il flusso di replica definito.
Elimina tutte le informazioni sui metadati sul peer hbase> rimuovi_peer '1' |
start_replica | Riavvia tutte le funzionalità di replica
hbase> start_replication |
stop_replica | Arresta tutte le funzionalità di replica
hbase>stop_replica |
Sommario
La shell HBase e i comandi generali forniscono informazioni complete sui diversi tipi di manipolazione dei dati, gestione delle tabelle e comandi di replica dei cluster. Possiamo eseguire varie funzioni utilizzando questi comandi sulle tabelle presenti in HBase.