Comandi della shell HBase con esempi

Sommario:

Anonim

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
  • Tramite l'API Java

In HBase, la modalità shell interattiva viene utilizzata per interagire con HBase per le operazioni sulle tabelle, la gestione delle tabelle e la modellazione dei dati. Utilizzando il modello API Java, possiamo eseguire tutti i tipi di operazioni su tabelle e dati in HBase. Possiamo interagire con HBase usando entrambi i metodi.

L'unica differenza tra questi due è che l'API Java utilizza il codice Java per connettersi con HBase e la modalità shell utilizza i comandi della shell per connettersi con HBase.

Sovraccarico rapido di HBase prima di procedere-

  • HBase utilizza i file Hadoop come sistema di archiviazione per archiviare grandi quantità di dati. Hbase è composto 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 più server regionali
  • Questi comandi della shell consentono al programmatore di definire schemi di tabelle e operazioni sui dati utilizzando un'interazione completa in modalità shell
  • Qualunque comando utilizziamo, si rifletterà nel modello dati HBase
  • Usiamo 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 delle distribuzioni operative Linux e Unix
  • Le versioni avanzate di HBase forniscono comandi di 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

Ad 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 un nome di tabella.

In questo tutorial imparerai,

  • Comandi generali
  • Comandi per la gestione delle tabelle
  • Comandi di manipolazione dei dati
  • Comandi di replica cluster

Comandi generali

In Hbase, i comandi generali sono classificati nei seguenti comandi

  • Stato
  • Versione
  • Table_help (scan, drop, get, put, disable, ecc.)
  • Chi sono

Per entrare nel comando della shell HBase, prima di tutto, dobbiamo eseguire il codice come indicato di seguito

hbase Shell

Una volta entrati nella shell HBase, possiamo eseguire tutti i comandi della shell menzionati di seguito. Con l'aiuto di questi comandi, possiamo eseguire tutti i tipi di operazioni sulle tabelle in modalità shell HBase.

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

Stato

Syntax:status

Questo comando fornirà dettagli sullo stato del sistema come un numero di server presenti nel cluster, il conteggio dei server attivi e il valore di carico medio. È inoltre possibile passare parametri particolari a seconda del livello di dettaglio che si desidera conoscere sul 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>statushbase(main):002:0>status 'simple'hbase(main):003:0>status 'summary'hbase(main):004:0> status 'detailed'

Quando eseguiamo questo stato del comando, fornirà informazioni sul numero di server presenti, inattivi e sul carico medio del server, qui nella schermata mostra le informazioni come: 1 server live, 1 server inattivo e 7.0000 carico medio.

Versione

Syntax: version

  • Questo comando visualizzerà la versione HBase attualmente utilizzata in modalità di comando
  • Se esegui il comando version, darà l'output come mostrato sopra

Aiuto da tavolo

Syntax:table_help

Questo comando guida

  • Cosa e come utilizzare i comandi con riferimento a tabelle
  • Fornirà diversi utilizzi dei comandi della shell HBase e le sue sintassi
  • Qui nella schermata sopra, mostra la sintassi per " creare" e il comando " get_table" con il suo utilizzo. Possiamo manipolare la tabella tramite questi comandi una volta che la tabella viene creata in HBase.
  • Fornirà comandi di manipolazione delle tabelle come put, get e tutte le altre informazioni sui comandi.

chi sono

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 l'ora di scadenza. Questo attributo si applica a tutte le versioni di una riga, anche alla versione corrente.

L'ora TTL codificata in 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 del TTL e i TTL della famiglia di colonne

  • I TTL delle celle sono espressi in unità di millisecondi invece di secondi.
  • I TTL di una cella non possono estendere la durata effettiva di una cella oltre un'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
  • Elenco
  • Descrivere
  • disattivare
  • Disabilitare tutto
  • Abilitare
  • Attiva tutto
  • Far cadere
  • Drop_all
  • Show_filters
  • Alter
  • Alter_status

Esaminiamo i vari utilizzi dei comandi in HBase con un esempio.

Creare

Syntax: create 
, 

Esempio:-

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

L'esempio sopra spiega come creare una tabella in HBase con il nome specificato dato in base al dizionario o alle specifiche secondo la famiglia di colonne. Oltre a questo possiamo anche passare alcuni attributi di ambito di tabella in esso.

Per verificare se la tabella "education" è stata creata o meno, dobbiamo usare il comando "list" come indicato di seguito.

Elenco

Syntax:list

  • Il comando "List" mostrerà tutte le tabelle presenti o create in HBase
  • L'output mostrato nella schermata sopra mostra attualmente le tabelle esistenti in HBase
  • Qui in questo screenshot, mostra che ci sono un totale di 8 tabelle presenti all'interno di HBase
  • È possibile filtrare i valori di output dalle tabelle passando parametri di espressione regolare facoltativi

Descrivere

Syntax:describe 

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 "istruzione".
  • Fornirà informazioni sul nome della tabella con famiglie di colonne, filtri associati, versioni e altri dettagli.

disattivare

Syntax: disable 

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 qui sopra stiamo disabilitando l'istruzione al tavolo

disabilitare tutto

 Syntax: disable_all<"matching regex"
  • Questo comando disabiliterà tutte le tabelle che corrispondono alla regex data.
  • L'implementazione è la stessa del comando di eliminazione (tranne l'aggiunta di regex per la corrispondenza)
  • Una volta che la tabella viene disabilitata, l'utente può eliminare la tabella da HBase
  • Prima di eliminare o eliminare la tabella, è necessario disattivarla prima

Abilitare

Syntax: enable 

hbase(main):012:0>enable 'education'
  • Questo comando inizierà ad abilitare la tabella denominata
  • Qualunque tabella sia disabilitata, per tornare al suo stato precedente usiamo questo comando
  • Se una tabella è disabilitata in prima istanza e non viene eliminata o abbandonata, e se vogliamo riutilizzare la tabella disabilitata, dobbiamo abilitarla utilizzando questo comando.
  • Qui nello screenshot qui sopra stiamo abilitando la tabella "istruzione".

show_filters

Syntax: show_filters

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

far cadere

Syntax:drop 

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, prima dobbiamo disabilitarla
  • Quindi qualsiasi tabella da eliminare o eliminare prima la tabella dovrebbe essere disabilitata utilizzando il comando disable
  • Qui nello screenshot qui sopra stiamo lasciando cadere la tabella "istruzione".
  • Prima di eseguire questo comando, è necessario disabilitare la tabella "istruzione".

drop_all

Syntax: drop_all<"regex">
  • Questo comando eliminerà tutte le tabelle che corrispondono alla regex data
  • Le tabelle devono prima disabilitare prima di eseguire questo comando utilizzando disable_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 usare quella tabella dobbiamo abilitarla usando il comando enable
  • Il comando is_enabled controllerà se la tabella è abilitata o meno

alterare

Syntax: alter 
, NAME=>, 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 alterazione del comando sulle tabelle e sulle relative colonne. Eseguiremo operazioni come

  • Modifica di nomi di famiglia di colonne singole e multiple
  • Eliminazione dei nomi delle famiglie di colonne dalla tabella
  • Diverse altre operazioni che utilizzano attributi di ambito con tabella
  1. Per modificare o aggiungere la famiglia di colonne "guru99_1" nella tabella "istruzione" dal valore corrente per mantenere un massimo di 5 VERSIONI di celle ,
  • "education" è il nome della tabella creata in precedenza con il nome della colonna "guru99"
  • Qui con l'aiuto di un comando alter stiamo cercando di cambiare lo schema della famiglia di colonne in guru99_1 da guru99

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
  1. È inoltre possibile utilizzare il comando alter 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 utilizzando questo comando
  • guru99_2 e guru99_3 come mostrato nell'immagine sopra sono i due nuovi nomi di colonna che abbiamo definito per l'istruzione della tabella
  • Possiamo vedere il modo di utilizzare questo comando nella schermata precedente
  1. In questo passaggio, vedremo come eliminare la famiglia di colonne dalla tabella. Per eliminare la famiglia di colonne "f1" nella tabella "istruzione".

Usa uno di questi comandi di seguito,

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1' 
  • In questo comando, stiamo cercando di eliminare il nome dello spazio delle colonne guru99_1 che abbiamo creato in precedenza nel primo passaggio

  1. Come mostrato nelle schermate seguenti, mostra 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'

Passaggio 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 che usiamo questo comando.

Utilizzo:

  • Possiamo usare MAX_FILESIZE con la tabella come attributo di ambito come sopra
  • Il numero rappresentato in MAX_FILESIZE è in termini di memoria in byte

N OTA: MAX_FILESIZE L'ambito della tabella degli attributi sarà determinato da alcuni attributi presenti nell'HBase. MAX_FILESIZE rientrano anche negli attributi dell'ambito della tabella.

Passaggio 2) È inoltre possibile rimuovere un attributo di ambito di tabella utilizzando il metodo table_att_unset. Se vedi il comando

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • La schermata sopra mostra il nome della tabella modificato con attributi di ambito
  • Il metodo table_att_unset viene utilizzato per annullare l'impostazione degli attributi presenti nella tabella
  • La 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'

  • Tramite 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. Dopodiché, se ha successo, mostrerà il commento fatto.

Comandi di manipolazione dei dati

Questi comandi funzioneranno sulla tabella relativa 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 rientrano in questi sono

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

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.
  • Il conteggio corrente viene mostrato ogni 1000 righe per impostazione predefinita.
  • L'intervallo di conteggio può essere facoltativamente specificato.
  • 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 esempio count recupera 1000 righe alla volta dalla tabella "Guru99".

Possiamo rendere la cache a un valore inferiore se la tabella è composta da più righe.

Ma per impostazione predefinita recupererà una riga alla volta.

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

Se supponiamo che la tabella "Guru99" abbia qualche riferimento di tabella come ad esempio g.

Possiamo eseguire il comando count sul riferimento alla tabella anche come di seguito

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

Mettere

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

Questo comando è usato per seguire le cose

  • Metterà un "valore" di cella nella tabella o riga o colonna definita o specificata.
  • Opzionalmente 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 di tabella come diciamo g. Possiamo anche eseguire il comando su riferimento alla tabella anche come

    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 sottostante, possiamo vedere che i valori sono inseriti correttamente

Snippet di codice: per esercitazione

create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}put 'guru99', 'r1', 'Edu:c1', 'value', 10put 'guru99', 'r1', 'Edu:c1', 'value', 15put '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", inseriamo i valori nella riga nome r1 nella colonna "Edu" nella tabella "guru99".

Ottenere

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

Qui includono TIMERANGE, TIMESTAMP, VERSIONS e FILTERS.

Usando questo comando, otterrai una riga o il contenuto di una cella presente nella tabella. Oltre a ciò, puoi anche aggiungere parametri aggiuntivi come TIMESTAMP, TIMERANGE, VERSIONS, FILTERS, ecc. Per ottenere una determinata 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", la riga r1 e i valori c1, c2, c3 delle famiglie di colonne verranno visualizzati utilizzando questo comando

Elimina

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Questo comando eliminerà il valore della cella nella tabella di riga o colonna definita.
  • 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 sopra cancellerà la riga r1 dalla famiglia di colonne c1 nella tabella "guru99".
  • Supponiamo che la tabella "guru99" abbia qualche riferimento di tabella come diciamo g.
  • Possiamo eseguire il comando sulla tabella di riferimento anche come hbase> g.delete '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 in base alla 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 in questo.

Troncare

Syntax: truncate 

Dopo il troncamento di una tabella hbase, lo schema presenterà ma non i record. Questo comando esegue 3 funzioni; quelli sono elencati di seguito

  • Disabilita la tabella se già presente
  • Tabella delle gocce se già presente
  • Ricrea la tabella menzionata

Scansione

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

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

  • 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
  • Consiste di tre valori di riga r1, r2, r3 per il valore di una singola colonna c1
  • Visualizza i valori associati alle righe

Esempi: -

I diversi utilizzi del comando di scansione

Comando

Utilizzo

esegui la scansione di ".META.", {COLUMNS => "info: regioninfo"}

Visualizza tutte le informazioni sui metadati relative alle colonne presenti nelle tabelle in HBase

esegui la scansione di "guru99", {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'}

Visualizza il contenuto della tabella guru99 con le rispettive famiglie di colonne c1 e c2 limitando i valori a 10

esegui la scansione di "guru99", {COLUMNS => "c1", TIMERANGE => [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 => true, VERSIONS => 10}

In questo comando RAW => true fornisce funzionalità avanzate come la visualizzazione di tutti i valori delle celle presenti nella tabella guru99

Esempio di codice:

Per prima cosa crea la tabella e posiziona i valori nella tabella

create 'guru99', {NAME=>'e', VERSIONS=>2147483647}put 'guru99', 'r1', 'e:c1', 'value', 10put 'guru99', 'r1', 'e:c1', 'value', 12put 'guru99', 'r1', 'e:c1', 'value', 14delete 'guru99', 'r1', 'e:c1', 11

Screenshot input:

Se eseguiamo il comando di scansione

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

Verrà visualizzato l'output mostrato di seguito.

Schermata di output:

L'output mostrato nella schermata sopra fornisce le seguenti informazioni

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

Comandi di replica cluster

  • Questi comandi funzionano sulla modalità di configurazione del cluster di HBase.
  • Per aggiungere e rimuovere peer dal cluster e per avviare e arrestare la replica, questi comandi vengono utilizzati in generale.

Comando

Funzionalità

add_peer

Aggiungi peer al cluster per replicare

hbase> add_peer '3', zk1, zk2, zk3: 2182: / hbase-prod

remove_peer

Arresta il flusso di replica definito.

Elimina tutte le informazioni sui metadati sul peer

hbase> remove_peer "1"

start_replication

Riavvia tutte le funzionalità di replica

hbase> start_replication

stop_replication

Arresta tutte le funzionalità di replica

hbase> stop_replication

Riepilogo :

La shell HBase e i comandi generali forniscono informazioni complete sui diversi tipi di manipolazione dei dati, gestione delle tabelle e comandi di replica del cluster. Possiamo eseguire varie funzioni utilizzando questi comandi sulle tabelle presenti in HBase.