Comenzi HBase Shell cu exemple

Cuprins:

Anonim

După instalarea cu succes a HBase deasupra Hadoop, obținem un shell interactiv pentru a executa diferite comenzi și a efectua mai multe operații. Folosind aceste comenzi, putem efectua mai multe operații pe tabele de date care pot oferi o eficiență mai bună a stocării datelor și o interacțiune flexibilă de către client.

Putem interacționa cu HBase în două moduri,

  • Modul shell interactiv HBase și
  • Prin intermediul API-ului Java

În HBase, modul shell interactiv este utilizat pentru a interacționa cu HBase pentru operații de tabel, gestionarea tabelelor și modelarea datelor. Folosind modelul API Java, putem efectua toate tipurile de operații de tabel și date în HBase. Putem interacționa cu HBase folosind ambele metode.

Singura diferență dintre aceste două este că API-ul Java folosește codul java pentru a vă conecta cu HBase, iar modul shell utilizează comenzi shell pentru a vă conecta cu HBase.

Suprapunere rapidă a HBase înainte de a continua -

  • HBase folosește fișiere Hadoop ca sistem de stocare pentru a stoca cantități mari de date. Hbase este format din servere principale și servere regiuni
  • Datele care vor fi stocate în HBase vor fi sub formă de regiuni. Mai mult, aceste regiuni vor fi împărțite și stocate în servere cu mai multe regiuni
  • Aceste comenzi shell permit programatorului să definească schemele tabelului și operațiile de date utilizând interacțiunea completă a modului shell
  • Indiferent de comanda pe care o folosim, aceasta se va reflecta în modelul de date HBase
  • Folosim comenzile shell HBase în interpretorii de scripturi ai sistemului de operare precum shell Bash
  • Bash shell este interpretul de comandă implicit pentru majoritatea distribuțiilor de operare Linux și Unix
  • Versiunile avansate HBase oferă comenzi shell referințe orientate obiect în stil jruby pentru tabele
  • Variabilele de referință ale tabelului pot fi utilizate pentru a efectua operații de date în modul shell HBase

Pentru exemple ,

  • În acest tutorial, am creat un tabel în care „educație” reprezintă numele tabelului și corespunde cu numele coloanei „guru99”.
  • În unele comenzi, „guru99” reprezintă un nume de tabel.

În acest tutorial - veți învăța,

  • Comenzi generale
  • Tabelele Comenzi Gestionări
  • Comenzi de manipulare a datelor
  • Comenzi de replicare cluster

Comenzi generale

În Hbase, comenzile generale sunt clasificate în următoarele comenzi

  • stare
  • Versiune
  • Table_help (scanare, eliminare, obținere, punere, dezactivare etc.)
  • Cine sunt

Pentru a intra în comanda shell HBase, mai întâi de toate, trebuie să executăm codul așa cum se menționează mai jos

hbase Shell

Odată ce intrăm în shell-ul HBase, putem executa toate comenzile shell menționate mai jos. Cu ajutorul acestor comenzi, putem efectua toate tipurile de operații de masă în modul shell HBase.

Să analizăm toate aceste comenzi și utilizarea lor una câte una cu un exemplu.

stare

Syntax:status

Această comandă va oferi detalii despre starea sistemului, cum ar fi un număr de servere prezente în cluster, numărul de servere active și valoarea medie de încărcare. Puteți, de asemenea, să transmiteți parametri anumiți, în funcție de starea detaliată pe care doriți să o cunoașteți despre sistem. Parametrii pot fi „rezumat”, „simplu” sau „detaliat” , parametrul implicit furnizat este „rezumat”.

Mai jos am arătat cum puteți transmite diferiți parametri comenzii de stare.

Dacă observăm captura de ecran de mai jos, vom avea o idee mai bună.

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

Când executăm această stare de comandă, aceasta va oferi informații despre numărul serverelor prezente, serverele moarte și încărcarea medie a serverului, aici în captura de ecran afișează informații cum ar fi - 1 server live, 1 servere moarte și 7.0000 încărcare medie.

Versiune

Syntax: version

  • Această comandă va afișa versiunea HBase utilizată în prezent în modul de comandă
  • Dacă executați comanda versiune, aceasta va da ieșire așa cum se arată mai sus

Ajutor de masă

Syntax:table_help

Această comandă ghidează

  • Ce și cum se utilizează comenzile cu referință la tabel
  • Acesta va furniza diferite utilizări ale comenzilor shell HBase și sintaxele sale
  • Aici, în captura de ecran de mai sus, aceasta prezintă sintaxa comenzii „ create” și „ get_table” cu utilizarea sa. Putem manipula tabelul prin aceste comenzi odată ce tabelul este creat în HBase.
  • Acesta va da comenzi de manipulare a tabelelor, cum ar fi put, get și toate celelalte informații despre comenzi.

cine sunt

Sintaxă:

Syntax: Whoami

Această comandă "whoami" este utilizată pentru a returna informațiile curente ale utilizatorului HBase din clusterul HBase.

Va furniza informații precum

  • Grupuri prezente în HBase
  • Informațiile utilizatorului, de exemplu în acest caz „hduser” reprezintă numele de utilizator așa cum se arată în captura de ecran

TTL (Time To Live) - Atribut

În HBase, familiile de coloane pot fi setate la valori de timp în secunde folosind TTL. HBase va șterge automat rândurile odată ce timpul de expirare este atins. Acest atribut se aplică tuturor versiunilor unui rând - chiar și versiunii actuale.

Ora TTL codată în baza HBase pentru rând este specificată în UTC. Acest atribut utilizat cu comenzile de gestionare a tabelelor.

Diferențele importante între manipularea TTL și TTL-urile familiei de coloane sunt prezentate mai jos

  • TTL-urile celulare sunt exprimate în unități de milisecunde în loc de secunde.
  • O TTL de celulă nu poate extinde durata de viață efectivă a unei celule dincolo de setarea TTL la nivel de familie de coloane.

Tabelele Comenzi Gestionări

Aceste comenzi vor permite programatorilor să creeze tabele și scheme de tabele cu rânduri și familii de coloane.

Următoarele sunt comenzile de administrare a tabelelor

  • Crea
  • Listă
  • Descrie
  • Dezactivează
  • Dezactivați toate
  • Permite
  • Permite tuturor
  • cădere brusca
  • Drop_all
  • Afișați_filtre
  • Modifica
  • Alter_status

Să analizăm utilizarea diferitelor comenzi în HBase cu un exemplu.

Crea

Syntax: create 
, 

Exemplu:-

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

Exemplul de mai sus explică cum să creați un tabel în HBase cu numele specificat dat conform dicționarului sau specificațiilor conform familiei de coloane. În plus, putem transmite și câteva atribute ale domeniului tabelului.

Pentru a verifica dacă tabelul „educație” este creat sau nu, trebuie să folosim comanda „listă” așa cum se menționează mai jos.

Listă

Syntax:list

  • Comanda „Listă” va afișa toate tabelele care sunt prezente sau create în HBase
  • Ieșirea afișată în captura de ecran de mai sus arată în prezent tabelele existente în HBase
  • Aici, în această captură de ecran, arată că există 8 tabele în total prezente în HBase
  • Putem filtra valorile de ieșire din tabele trecând parametrii opționali de expresie regulată

Descrie

Syntax:describe 

hbase(main):010:0>describe 'education'

Această comandă descrie tabelul numit.

  • Acesta va oferi mai multe informații despre familiile de coloane prezente în tabelul menționat
  • În cazul nostru, oferă descrierea despre tabelul „educație”.
  • Acesta va oferi informații despre numele tabelului cu familii de coloane, filtre asociate, versiuni și câteva detalii suplimentare.

dezactivați

Syntax: disable 

hbase(main):011:0>disable 'education'
  • Această comandă va începe dezactivarea tabelei numite
  • Dacă tabelul trebuie șters sau eliminat, acesta trebuie să fie dezactivat mai întâi

Aici, în captura de ecran de mai sus, dezactivăm educația la masă

dezactivați toate

 Syntax: disable_all<"matching regex"
  • Această comandă va dezactiva toate tabelele care corespund regexului dat.
  • Implementarea este aceeași cu comanda de ștergere (cu excepția adăugării regexului pentru potrivire)
  • Odată ce tabelul devine dezactivat, utilizatorul poate șterge tabelul din HBase
  • Înainte de a șterge sau a scăpa tabelul, acesta ar trebui să fie dezactivat mai întâi

Permite

Syntax: enable 

hbase(main):012:0>enable 'education'
  • Această comandă va începe să activeze tabelul numit
  • Orice tabel este dezactivat, pentru a reveni la starea sa anterioară folosim această comandă
  • Dacă un tabel este dezactivat în primă instanță și nu este șters sau eliminat și dacă dorim să refolosim tabelul dezactivat, atunci trebuie să îl activăm folosind această comandă.
  • Aici, în captura de ecran de mai sus, activăm tabelul „educație”.

show_filters

Syntax: show_filters

Această comandă afișează toate filtrele prezente în HBase, cum ar fi Filtru ColumnPrefix, TimestampsFilter, PageFilter, FamilyFilter etc.

cădere brusca

Syntax:drop 

hbase(main):017:0>drop 'education'

Trebuie să respectăm punctele de mai jos pentru comanda drop

  • Pentru a șterge tabelul prezent în HBase, mai întâi trebuie să îl dezactivăm
  • Pentru a renunța la tabelul prezent în HBase, mai întâi trebuie să îl dezactivăm
  • Deci, fie tabelul pentru a renunța sau șterge mai întâi tabelul ar trebui să fie dezactivat folosind comanda de dezactivare
  • Aici, în captura de ecran de mai sus, renunțăm la tabelul „educație”.
  • Înainte de executarea acestei comenzi, este necesar să dezactivați tabelul „educație”.

drop_all

Syntax: drop_all<"regex">
  • Această comandă va renunța la toate tabelele care corespund regexului dat
  • Tabelele trebuie să fie dezactivate mai întâi înainte de a executa această comandă folosind disable_all
  • Tabelele cu expresii de potrivire regex vor fi abandonate din HBase

este activat

Syntax: is_enabled 'education'

Această comandă va verifica dacă tabelul numit este activat sau nu. De obicei, există o mică confuzie între acțiunea de comandă „enable” și „is_enabled”, pe care o eliminăm aici

  • Să presupunem că un tabel este dezactivat, pentru a utiliza acel tabel trebuie să-l activăm folosind comanda enable
  • comanda is_enabled va verifica dacă tabelul este activat sau nu

modifica

Syntax: alter 
, NAME=>, VERSIONS=>5

Această comandă modifică schema familiei de coloane. Pentru a înțelege exact ce face, l-am explicat aici cu un exemplu.

Exemple:

În aceste exemple, vom efectua operații de modificare a comenzilor pe tabele și pe coloanele sale. Vom efectua operațiuni precum

  • Modificarea numelor de familie cu coloane unice, multiple
  • Ștergerea numelor de familie a coloanelor din tabel
  • Mai multe alte operații care utilizează atribute de scop cu tabelul
  1. Pentru a schimba sau a adăuga familia de coloane „guru99_1” în tabelul „educație” din valoarea curentă pentru a păstra maximum 5 VERSIUNI de celule ,
  • „educație” este numele tabelului creat anterior cu numele coloanei „guru99” anterior
  • Aici, cu ajutorul unei comenzi alter, încercăm să schimbăm schema familiei de coloane în guru99_1 din guru99

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
  1. De asemenea, puteți opera comanda alter și pe mai multe familii de coloane. De exemplu, vom defini două coloane noi la tabelul existent „educație”.
 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}

  • Putem schimba mai multe scheme de coloane odată folosind această comandă
  • guru99_2 și guru99_3 așa cum se arată în captura de ecran de mai sus sunt cele două nume de coloane noi pe care le-am definit pentru educația tabelului
  • Putem vedea modul de utilizare a acestei comenzi în captura de ecran anterioară
  1. În acest pas, vom vedea cum să ștergeți familia de coloane din tabel. Pentru a șterge familia de coloane „f1” din tabelul „educație”.

Utilizați una dintre aceste comenzi de mai jos,

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1' 
  • În această comandă, încercăm să ștergem numele spațiului de coloană guru99_1 pe care l-am creat anterior în primul pas

  1. Așa cum se arată în capturile de ecran de mai jos, acesta prezintă doi pași - cum să schimbați atributul domeniului tabelului și cum să eliminați atributul domeniului tabelului.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

Pasul 1) Puteți schimba atributele domeniului tabelului, cum ar fi MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH etc. Acestea pot fi puse la sfârșit; de exemplu, pentru a schimba dimensiunea maximă a unei regiuni la 128 MB sau orice altă valoare a memoriei folosim acest lucru comanda.

Utilizare:

  • Putem folosi MAX_FILESIZE cu tabelul ca atribut scop ca mai sus
  • Numărul reprezentat în MAX_FILESIZE este în termeni de memorie în octeți

N OTE: MAX_FILESIZE Domeniul tabelului de atribute va fi determinat de unele atribute prezente în HBase. MAX_FILESIZE intră și sub atributele domeniului de aplicare al tabelului.

Pasul 2) Puteți, de asemenea, să eliminați un atribut tabel-scop utilizând metoda table_att_unset. Dacă vedeți comanda

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • Imaginea de mai sus arată numele tabelului modificat cu atribute de scop
  • Metoda table_att_unset este utilizată pentru a anula atributele prezente în tabel
  • A doua instanță dezactivăm atributul MAX_FILESIZE
  • După executarea comenzii, aceasta va anula pur și simplu atributul MAX_FILESIZE din tabelul „educație”.

alter_status

 Syntax: alter_status 'education'

  • Prin această comandă, puteți obține starea comenzii alter
  • Care indică numărul de regiuni ale tabelului care au primit numele actualizat al tabelei de trecere a schemei
  • Aici, în captura de ecran de mai sus, se afișează 1/1 de regiuni actualizate. Înseamnă că a actualizat o regiune. După aceea, dacă va avea succes, va apărea comentariul făcut.

Comenzi de manipulare a datelor

Aceste comenzi vor funcționa pe tabel legate de manipularea datelor, cum ar fi introducerea datelor într-un tabel, preluarea datelor dintr-un tabel și ștergerea schemei etc.

Comenzile care intră sub acestea sunt

  • Numara
  • A pune
  • obține
  • Șterge
  • Sterge tot
  • Trunchia
  • Scanează

Să analizăm utilizarea acestor comenzi cu un exemplu.

Numara

Syntax: count <'tablename'>, CACHE =>1000
  • Comanda va prelua numărul unui număr de rânduri dintr-un tabel. Valoarea returnată de acesta este numărul de rânduri.
  • Numărul curent este afișat în mod implicit la fiecare 1000 de rânduri.
  • Intervalul de numărare poate fi specificat opțional.
  • Dimensiunea implicită a memoriei cache este de 10 rânduri.
  • Comanda Count va funcționa rapid atunci când este configurată cu Cache dreapta.

Exemplu:

hbase> count 'guru99', CACHE=>1000

Acest exemplu de numărare preluează 1000 de rânduri odată din tabelul „Guru99”.

Putem face cache la o valoare mai mică dacă tabelul este format din mai multe rânduri.

Dar, în mod implicit, va prelua un rând la rând.

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

Dacă presupunem că dacă tabelul „Guru99” are o referință la tabel cum ar fi spune g.

Putem rula comanda count pe referința la tabel, de asemenea, ca mai jos

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

A pune

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

Această comandă este utilizată pentru urmărirea lucrurilor

  • Acesta va pune o „valoare” a celulei la tabelul sau rândul sau coloana definită sau specificată.
  • Va coordona, opțional, ștampila de timp.

Exemplu:

  • Aici plasăm valori în tabelul „guru99” sub rândul r1 și coloana c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Am plasat trei valori, 10,15 și 30 în tabelul „guru99”, așa cum se arată în captura de ecran de mai jos

  • Să presupunem că dacă tabelul „Guru99” are o referință de tabel, cum ar fi g. De asemenea, putem rula comanda pe referința tabelului, de asemenea, ca

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Ieșirea va fi așa cum se arată în captura de ecran de mai sus după plasarea valorilor în „guru99”.

Pentru a verifica dacă valoarea de intrare este inserată corect în tabel, folosim comanda „scanare”. În captura de ecran de mai jos, putem vedea că valorile sunt inserate corect

Fragment de cod: pentru practică

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

Din fragmentul de cod, facem aceste lucruri

  • Aici creăm un tabel numit „guru99” cu numele coloanei ca „Edu”.
  • Folosind comanda „pune”, plasăm valori în numele rândului r1 în coloana „Edu” în tabelul „guru99”.

obține

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

Aici includ TIMERANGE, TIMESTAMP, VERSIONS și FILTRURI.

Utilizând această comandă, veți obține un conținut de rând sau celulă prezent în tabel. În plus, puteți adăuga parametri suplimentari, cum ar fi TIMESTAMP, TIMERANGE, VERSIONS, FILTERS etc. pentru a obține un anumit rând sau conținut de celulă.

Exemple: -

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

Pentru tabelul „guru99 'rândul r1 și coloana c1 valorile se vor afișa folosind această comandă așa cum se arată în captura de ecran de mai sus

hbase> get 'guru99', 'r1'

Pentru tabelul „guru99” rândul va fi afișat valorile r1 folosind această comandă

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

Pentru tabelul „guru99” rândul 1 valorile din intervalul de timp ts1 și ts2 vor fi afișate folosind această comandă

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

Pentru tabelul „guru99” rândul r1 și valorile c1, c2, c3 ale familiilor de coloane vor fi afișate folosind această comandă

Șterge

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Această comandă va șterge valoarea celulei la tabelul definit al rândului sau coloanei.
  • Ștergerea trebuie și trebuie să se potrivească exact cu coordonatele celulelor șterse.
  • La scanare, ștergerea celulei elimină versiunile mai vechi ale valorilor.

Exemplu:

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''. 
  • Execuția de mai sus va șterge rândul r1 din familia de coloane c1 din tabelul „guru99”.
  • Să presupunem că dacă tabelul „guru99” are o referință la tabel, cum ar fi g.
  • Putem rula comanda pe referința tabelului, de asemenea, ca hbase> g.delete 'guru99', 'r1', 'c1' ".

sterge tot

Syntax: deleteall <'tablename'>, <'rowname'>

  • Această comandă va șterge toate celulele dintr-un rând dat.
  • Opțional, putem defini numele coloanei și marcajul de timp pentru sintaxă.

Exemplu:-

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

Aceasta va șterge toate rândurile și coloanele prezente în tabel. Opțional, putem menționa numele coloanelor în aceasta.

Trunchia

Syntax: truncate 

După trunchierea unui tabel hbase, schema va prezenta, dar nu înregistrările. Această comandă îndeplinește 3 funcții; acestea sunt enumerate mai jos

  • Dezactivează tabelul dacă acesta prezintă deja
  • Aruncă tabelul dacă prezintă deja
  • Recreează tabelul menționat

Scanează

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

Această comandă scanează întregul tabel și afișează conținutul tabelului.

  • Putem transmite mai multe specificații opționale acestei comenzi de scanare pentru a obține mai multe informații despre tabelele prezente în sistem.
  • Specificațiile scanerului pot include unul sau mai multe dintre următoarele atribute.
  • Acestea sunt TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW și STOPROW.
scan 'guru99' 

Ieșirea prezentată mai jos în captura de ecran

În captura de ecran de mai sus

  • Se afișează tabelul „guru99” cu numele și valorile coloanei
  • Se compune din trei valori de rând r1, r2, r3 pentru valoarea c1 a unei singure coloane
  • Afișează valorile asociate rândurilor

Exemple: -

Diferitele utilizări ale comenzii de scanare

Comanda

Utilizare

scanează '.META.', {COLUMNS => 'info: regioninfo'}

Afișează toate informațiile meta date referitoare la coloanele care sunt prezente în tabelele din HBase

scanare 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'}

Afișează conținutul tabelului guru99 cu familiile lor de coloane c1 și c2 limitând valorile la 10

scanare 'guru99', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]}

Afișează conținutul guru99 cu numele coloanei sale c1 cu valorile prezente între valoarea atributului intervalului de timp menționat

scanează „guru99”, {RAW => adevărat, VERSIONS => 10}

În această comandă RAW => true oferă o caracteristică avansată, cum ar fi afișarea tuturor valorilor celulei prezente în tabelul guru99

Exemplu de cod:

Mai întâi creați tabelul și plasați valorile în tabel

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

Captură de ecran de intrare:

Dacă executăm comanda de scanare

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

Se va afișa ieșirea prezentată mai jos.

Captură de ecran de ieșire:

Ieșirea afișată în captura de ecran de mai sus oferă următoarele informații

  • Se scanează tabelul guru99 cu atribute RAW => adevărat, VERSIONS => 1000
  • Se afișează rânduri cu familii și valori de coloane
  • În al treilea rând, valorile afișate arată valoarea ștearsă prezentă în coloană
  • Ieșirea afișată de acesta este aleatorie; nu poate fi aceeași ordine ca valorile pe care le-am inserat în tabel

Comenzi de replicare cluster

  • Aceste comenzi funcționează pe modul de configurare cluster al HBase.
  • Pentru adăugarea și eliminarea colegilor în cluster și pentru pornirea și oprirea replicării, aceste comenzi sunt utilizate în general.

Comanda

Funcționalitate

add_peer

Adăugați colegii în cluster pentru a le reproduce

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

remove_peer

Oprește fluxul de replicare definit.

Șterge toate informațiile despre metadate despre egal

hbase> remove_peer '1'

start_replication

Repornește toate caracteristicile de replicare

hbase> start_replication

stop_replication

Oprește toate funcțiile de replicare

hbase> stop_replication

Rezumat :

HBase shell și comenzile generale oferă informații complete despre diferite tipuri de manipulare a datelor, gestionarea tabelelor și comenzile de replicare a clusterelor. Putem efectua diverse funcții folosind aceste comenzi pe tabelele prezente în HBase.