HBase Shell kommandoer med eksempler

Innholdsfortegnelse:

Anonim

Etter vellykket installasjon av HBase på toppen av Hadoop får vi et interaktivt skall for å utføre forskjellige kommandoer og utføre flere operasjoner. Ved hjelp av disse kommandoene kan vi utføre flere operasjoner på datatabeller som kan gi bedre datalagringseffektivitet og fleksibel interaksjon av klienten.

Vi kan samhandle med HBase på to måter,

  • HBase interaktiv skallmodus og
  • Gjennom Java API

I HBase brukes interaktiv skallmodus til å samhandle med HBase for tabelloperasjoner, tabelladministrasjon og datamodellering. Ved å bruke Java API-modellen kan vi utføre alle typer tabell- og dataoperasjoner i HBase. Vi kan samhandle med HBase ved å bruke begge metodene.

Den eneste forskjellen mellom disse to er Java API-bruk Java-kode for å koble til HBase og shell-modus bruke skallkommandoer for å koble til HBase.

Rask overkapasitet av HBase før vi fortsetter-

  • HBase bruker Hadoop-filer som lagringssystem for å lagre store datamengder. Hbase består av hovedservere og regionservere
  • Dataene som skal lagres i HBase vil være i form av regioner. Videre vil disse regionene bli delt opp og lagret på flere regionservere
  • Denne shell-kommandoen lar programmereren definere tabellskjemaer og datoperasjoner ved å bruke fullstendig shell-modus-interaksjon
  • Uansett hvilken kommando vi bruker, vil den gjenspeile seg i HBase-datamodellen
  • Vi bruker HBase shell-kommandoer i skriptolkere for operativsystem som Bash shell
  • Bash shell er standardkommandotolker for de fleste av Linux- og Unix-operasjonsdistribusjoner
  • HBase avanserte versjoner gir skallkommandoer objektorienterte referanser for jruby-stil for tabeller
  • Tabellreferansevariabler kan brukes til å utføre dataoperasjoner i HBase-skallmodus

For eksempler ,

  • I denne veiledningen har vi laget en tabell der 'utdannelse' representerer tabellnavnet og tilsvarer kolonnenavnet "guru99".
  • I noen kommandoer representerer "Guru99" selve et tabellnavn.

I denne opplæringen - vil du lære,

  • Generelle kommandoer
  • Kommandoer for tabelladministrasjon
  • Datamanipuleringskommandoer
  • Klyngereplikasjonskommandoer

Generelle kommandoer

I Hbase er generelle kommandoer kategorisert i følgende kommandoer

  • Status
  • Versjon
  • Table_help (skann, slipp, få, put, deaktiver osv.)
  • Hvem er jeg

For å komme inn i HBase shell-kommandoen, må vi først og fremst utføre koden som nevnt nedenfor

hbase Shell

Når vi kommer inn i HBase-skall, kan vi utføre alle skallkommandoer nevnt nedenfor. Ved hjelp av disse kommandoene kan vi utføre alle typer tabelloperasjoner i HBase-skallmodus.

La oss se på alle disse kommandoene og bruken av dem en etter en med et eksempel.

Status

Syntax:status

Denne kommandoen vil gi detaljer om systemstatusen, for eksempel et antall servere som er tilstede i klyngen, antall servere og gjennomsnittlig belastningsverdi. Du kan også sende spesifikke parametere avhengig av hvor detaljert status du vil vite om systemet. Parametrene kan være 'sammendrag', 'enkel' eller 'detaljert' . Standardparameteren er "sammendrag".

Nedenfor har vi vist hvordan du kan overføre forskjellige parametere til statuskommandoen.

Hvis vi observerer skjermbildet nedenfor, får vi en bedre ide.

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

Når vi utfører denne kommandostatusen, vil den gi informasjon om antall serverens nåværende, døde servere og gjennomsnittlig belastning på serveren, her på skjermbildet viser den informasjonen som 1 live server, 1 døde servere og 7.0000 gjennomsnittlig belastning.

Versjon

Syntax: version

  • Denne kommandoen viser den brukte HBase-versjonen i kommandomodus
  • Hvis du kjører versjonskommando, vil den gi utdata som vist ovenfor

Bordhjelp

Syntax:table_help

Denne kommandoen veileder

  • Hva og hvordan du bruker tabellhenviste kommandoer
  • Det vil gi forskjellige HBase shell-kommandobruk og syntakser
  • Her i skjermbildet over viser det syntaksen for å " opprette" og " get_table" -kommandoen med bruken. Vi kan manipulere tabellen via disse kommandoene når tabellen blir opprettet i HBase.
  • Det vil gi tabellmanipuleringer kommandoer som put, get og all annen kommandoinformasjon.

hvem er jeg

Syntaks:

Syntax: Whoami

Denne kommandoen "whoami" brukes til å returnere gjeldende HBase-brukerinformasjon fra HBase-klyngen.

Det vil gi informasjon som

  • Grupper til stede i HBase
  • Brukerinformasjonen, for eksempel i dette tilfellet "hduser" representerer brukernavnet som vist på skjermbilde

TTL (Time To Live) - Attributt

I HBase kan kolonnefamilier settes til tidsverdier i sekunder ved hjelp av TTL. HBase vil automatisk slette rader når utløpstiden er nådd. Dette attributtet gjelder alle versjoner av en rad - også den nåværende versjonen.

TTL-tiden som er kodet i HBase for raden, er spesifisert i UTC. Dette attributtet brukes med kommandoer for tabelladministrasjon.

Viktige forskjeller mellom TTL-håndtering og kolonnefamilien TTL er nedenfor

  • Celle-TTL-er uttrykkes i enheter på millisekunder i stedet for sekunder.
  • En celle-TTL kan ikke forlenge den effektive levetiden til en celle utover en TTL-innstilling på kolonnefamilienivå.

Kommandoer for tabelladministrasjon

Disse kommandoene lar programmerere lage tabeller og tabellskjemaer med rader og kolonnefamilier.

Følgende er kommandoer for tabelladministrasjon

  • Skape
  • Liste
  • Beskrive
  • Deaktiver
  • Deaktivere alle
  • Muliggjøre
  • Aktiver_all
  • Miste
  • Drop_all
  • Vis_filter
  • Endre
  • Alter_status

La oss se på forskjellige kommandobruk i HBase med et eksempel.

Skape

Syntax: create 
, 

Eksempel:-

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

Ovenstående eksempel forklarer hvordan du lager en tabell i HBase med det angitte navnet gitt i henhold til ordboken eller spesifikasjonene i henhold til kolonnefamilien. I tillegg til dette kan vi også overføre noen attributter i tabellområdet.

For å sjekke om tabellen 'utdannelse' er opprettet eller ikke, må vi bruke "liste" -kommandoen som nevnt nedenfor.

Liste

Syntax:list

  • "List" -kommandoen viser alle tabellene som er til stede eller opprettet i HBase
  • Utgangen som vises i skjermbildet ovenfor viser for tiden de eksisterende tabellene i HBase
  • Her i dette skjermbildet viser det at det er totalt 8 bord til stede inne i HBase
  • Vi kan filtrere utdataverdier fra tabeller ved å sende valgfrie parametere for regulært uttrykk

Beskrive

Syntax:describe 

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

Denne kommandoen beskriver den navngitte tabellen.

  • Det vil gi mer informasjon om kolonnefamilier som er tilstede i den nevnte tabellen
  • I vårt tilfelle gir den beskrivelsen om tabellen "utdanning".
  • Det vil gi informasjon om tabellnavn med kolonnefamilier, tilknyttede filtre, versjoner og noen flere detaljer.

deaktivere

Syntax: disable 

hbase(main):011:0>disable 'education'
  • Denne kommandoen begynner å deaktivere den navngitte tabellen
  • Hvis tabellen må slettes eller slippes, må den deaktiveres først

Her, i skjermbildet ovenfor, deaktiverer vi bordutdanning

deaktivere alle

 Syntax: disable_all<"matching regex"
  • Denne kommandoen vil deaktivere alle tabellene som samsvarer med den gitte regexen.
  • Implementeringen er den samme som delete-kommandoen (unntatt å legge til regex for matching)
  • Når tabellen er deaktivert, kan brukeren kunne slette tabellen fra HBase
  • Før du sletter eller slipper tabellen, bør den deaktiveres først

Muliggjøre

Syntax: enable 

hbase(main):012:0>enable 'education'
  • Denne kommandoen begynner å aktivere den navngitte tabellen
  • Uansett hvilken tabell som er deaktivert, bruker vi denne kommandoen for å hente tilbake til sin forrige tilstand
  • Hvis en tabell deaktiveres i første omgang og ikke slettes eller droppes, og hvis vi vil bruke den deaktiverte tabellen på nytt, må vi aktivere den ved å bruke denne kommandoen.
  • Her i skjermbildet ovenfor aktiverer vi tabellen "utdannelse".

vis_filter

Syntax: show_filters

Denne kommandoen viser alle filtrene som er tilstede i HBase som ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter, etc.

miste

Syntax:drop 

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

Vi må observere punktene nedenfor for slippkommando

  • For å slette tabellen i HBase, må vi først deaktivere den
  • For å slippe tabellen i HBase, må vi først deaktivere den
  • Så hver tabell for å slippe eller slette først, bør tabellen deaktiveres ved hjelp av deaktiveringskommandoen
  • Her i skjermbildet ovenfor slipper vi tabellen "utdannelse".
  • Før du utfører denne kommandoen, er det nødvendig at du deaktiverer "utdannelse".

drop_all

Syntax: drop_all<"regex">
  • Denne kommandoen vil slippe alle tabellene som samsvarer med den gitte regexen
  • Tabeller må deaktiveres før de utfører denne kommandoen ved hjelp av disable_all
  • Tabeller med regex-samsvarende uttrykk kommer til å falle fra HBase

Er på

Syntax: is_enabled 'education'

Denne kommandoen vil verifisere om den navngitte tabellen er aktivert eller ikke. Vanligvis er det litt forvirring mellom "aktiver" og "is_enabled" kommandohandling, som vi fjerner her

  • Anta at en tabell er deaktivert, for å bruke den tabellen må vi aktivere den ved å bruke aktiver kommando
  • kommandoen is_enabled vil kontrollere om tabellen er aktivert eller ikke

endre

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

Denne kommandoen endrer skjemaet for kolonnefamilien. For å forstå hva det gjør, har vi forklart det her med et eksempel.

Eksempler:

I disse eksemplene skal vi utføre endringskommandoperasjoner på tabeller og på kolonnene. Vi vil utføre operasjoner som

  • Endring av enkeltnavn, flere kolonnefamilienavn
  • Slette kolonnefamilienavn fra tabellen
  • Flere andre operasjoner som bruker omfangsattributter med tabell
  1. For å endre eller legge til 'guru99_1' kolonnefamilien i tabellen 'utdanning' fra gjeldende verdi for å beholde maksimalt 5 celleVERSJONER ,
  • "utdannelse" er tabellnavn opprettet med kolonnenavn "guru99" tidligere
  • Her prøver vi å endre kolonnefamilieskjemaet til guru99_1 fra guru99 ved hjelp av en alter-kommando.

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
  1. Du kan også bruke alter-kommandoen på flere kolonnefamilier. For eksempel vil vi definere to nye kolonner til vår eksisterende tabell "utdannelse".
 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}

  • Vi kan endre mer enn én kolonneskjema om gangen ved hjelp av denne kommandoen
  • guru99_2 og guru99_3 som vist på skjermbildet ovenfor er de to nye kolonnenavnene vi har definert for tabellopplæringen
  • Vi kan se måten å bruke denne kommandoen på forrige skjermbilde
  1. I dette trinnet vil vi se hvordan du sletter kolonnefamilien fra tabellen. For å slette 'f1' kolonnefamilien i tabellen 'utdanning'.

Bruk en av disse kommandoene nedenfor,

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1' 
  • I denne kommandoen prøver vi å slette kolonneplassnavnet guru99_1 som vi tidligere opprettet i det første trinnet

  1. Som vist i skjermbildene nedenfor, viser den to trinn - hvordan du endrer tabellomfangsattributt og hvordan du fjerner tabellomfangsattributtet.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

Trinn 1) Du kan endre attributter for tabellområdet som MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, etc. Disse kan settes på slutten, for eksempel for å endre den maksimale størrelsen på en region til 128 MB eller hvilken som helst annen minneverdi vi bruker denne kommando.

Bruk:

  • Vi kan bruke MAX_FILESIZE med tabellen som omfangsattributt som ovenfor
  • Tallet som representeres i MAX_FILESIZE er i minnetiden i byte

N ERK: MAX_FILESIZE Egenskap Tabell omfang vil være bestemt av noen attributter til stede i den HBase. MAX_FILESIZE kommer også under attributter for tabellomfang.

Trinn 2) Du kan også fjerne et attributt for tabellomfang ved hjelp av metoden table_att_unset. Hvis du ser kommandoen

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • Skjermbildet ovenfor viser endret tabellnavn med omfangsattributter
  • Metode table_att_unset brukes til å fjerne merking av attributter i tabellen
  • Den andre forekomsten avbryter vi attributtet MAX_FILESIZE
  • Etter utførelse av kommandoen vil den bare deaktivere MAX_FILESIZE-attributtet fra "utdanning" -tabellen.

alter_status

 Syntax: alter_status 'education'

  • Gjennom denne kommandoen kan du få status på alter-kommandoen
  • Som angir antall regioner i tabellen som har mottatt det oppdaterte skjemaets passordtabellnavn
  • Her i skjermbildet ovenfor viser 1/1 regioner oppdatert. Det betyr at den har oppdatert en region. Etter det, hvis det lykkes, vises kommentaren ferdig.

Datamanipuleringskommandoer

Disse kommandoene vil fungere på tabellen relatert til datamanipulering som å sette data i en tabell, hente data fra en tabell og slette skjema, etc.

Kommandoene som kommer under disse er

  • Telle
  • Sette
  • Slett
  • Slette alle
  • Avkort
  • Skann

La oss se på bruken av disse kommandoene med et eksempel.

Telle

Syntax: count <'tablename'>, CACHE =>1000
  • Kommandoen vil hente tellingen av et antall rader i en tabell. Verdien som returneres av denne er antall rader.
  • Nåværende antall vises per 1000 rader som standard.
  • Telleintervall kan være valgfritt.
  • Standard bufferstørrelse er 10 rader.
  • Count-kommandoen fungerer raskt når den er konfigurert med riktig cache.

Eksempel:

hbase> count 'guru99', CACHE=>1000

Dette eksemplet teller henter 1000 rader om gangen fra "Guru99" -tabellen.

Vi kan lage hurtigbuffer til en lavere verdi hvis tabellen består av flere rader.

Men som standard henter den en rad om gangen.

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

Hvis anta om tabellen "Guru99" har en tabellreferanse som si g.

Vi kan kjøre tellekommandoen på tabellreferanse også som nedenfor

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

Sette

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

Denne kommandoen brukes til å følge ting

  • Det vil sette en celleverdi i definert eller spesifisert tabell eller rad eller kolonne.
  • Det vil eventuelt koordinere tidsstempel.

Eksempel:

  • Her plasserer vi verdier i tabellen "guru99" under rad r1 og kolonne c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Vi har plassert tre verdier, 10,15 og 30 i tabellen "guru99" som vist på skjermbildet nedenfor

  • Anta at hvis tabellen "Guru99" har en tabellreferanse som si g. Vi kan også kjøre kommandoen på tabellreferanse også som

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Utdataene vil være som vist i skjermbildet ovenfor etter å ha plassert verdier i "guru99".

For å sjekke om inngangsverdien er riktig satt inn i tabellen, bruker vi "scan" -kommandoen. I skjermbildet nedenfor kan vi se at verdiene er satt inn riktig

Kodebit: For praksis

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

Fra kodebiten gjør vi disse tingene

  • Her lager vi en tabell med navnet 'guru99' med kolonnenavnet som "Edu."
  • Ved å bruke "put" -kommandoen plasserer vi verdier i radnavn r1 i kolonne "Edu" i tabellen "guru99."

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

Her inkluderer TIMERANGE, TIMESTAMP, VERSIONS og FILTERS.

Ved å bruke denne kommandoen får du en rad eller et celleinnhold i tabellen. I tillegg til det kan du også legge til flere parametere som TIMESTAMP, TIMERANGE, VERSJONER, FILTER osv. For å få en bestemt rad eller celleinnhold.

Eksempler: -

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

For tabell "vises guru99 'rad r1 og kolonne c1 med denne kommandoen som vist i skjermbildet ovenfor

hbase> get 'guru99', 'r1'

For tabellen "guru99" vises rad r1-verdier ved hjelp av denne kommandoen

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

For tabell "guru99" vises rad 1-verdier i tidsområdet ts1 og ts2 ved hjelp av denne kommandoen

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

For tabell "guru99" rad r1 og kolonnefamilier c1, c2, c3 verdier vises med denne kommandoen

Slett

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Denne kommandoen vil slette celleverdien i definert tabell for rad eller kolonne.
  • Slett må og skal samsvare nøyaktig med de slettede cellekoordinatene.
  • Når du skanner, sletter celle undertrykker eldre versjoner av verdier.

Eksempel:

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''. 
  • Ovennevnte utførelse vil slette rad r1 fra kolonnefamilien c1 i tabellen "guru99."
  • Anta at hvis tabellen "guru99" har en tabellreferanse som si g.
  • Vi kan kjøre kommandoen på tabellreferanse også som hbase> g.delete 'guru99', 'r1', 'c1' ".

slette alle

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

  • Denne kommandoen vil slette alle celler i en gitt rad.
  • Vi kan definere valgfritt kolonnenavn og tidsstempel til syntaksen.

Eksempel:-

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

Dette vil slette alle radene og kolonnene i tabellen. Eventuelt kan vi nevne kolonnenavn i det.

Avkort

Syntax: truncate 

Etter avkorting av en hbase-tabell vil skjemaet presentere, men ikke postene. Denne kommandoen utfører 3 funksjoner; disse er oppført nedenfor

  • Deaktiver tabell hvis den allerede presenteres
  • Dropper tabellen hvis den allerede presenterer
  • Gjenskaper den nevnte tabellen

Skann

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

Denne kommandoen skanner hele tabellen og viser tabellinnholdet.

  • Vi kan sende flere valgfrie spesifikasjoner til denne skannekommandoen for å få mer informasjon om tabellene i systemet.
  • Skannerspesifikasjoner kan inneholde ett eller flere av følgende attributter.
  • Disse er TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW og STOPROW.
scan 'guru99' 

Utgangen som vist nedenfor på skjermbildet

I skjermbildet ovenfor

  • Den viser "guru99" -tabell med kolonnenavn og verdier
  • Den består av tre radverdier r1, r2, r3 for verdi for enkelt kolonne c1
  • Den viser verdiene som er knyttet til rader

Eksempler: -

De forskjellige bruksområder for skanningskommando

Kommando

Bruk

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

Den viser all metadatainformasjon relatert til kolonner som er tilstede i tabellene i HBase

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

Den viser innholdet i tabellen Guru99 med kolonnefamiliene c1 og c2 som begrenser verdiene til 10

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

Den viser innholdet i guru99 med kolonnenavnet c1 med verdiene som er tilstede mellom den nevnte tidsområdet attributtverdi

skann 'guru99', {RAW => true, VERSIONS => 10}

I denne kommandoen gir RAW => true avansert funksjon som å vise alle celleverdiene som er tilstede i tabellen guru99

Kodeeksempel:

Først oppretter du bord og plasserer verdier i tabellen

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

Inngangsskjermbilde:

Hvis vi kjører skannekommando

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

Det viser utdata vist nedenfor.

Utgang skjermbilde:

Resultatet vist i skjermbildet ovenfor gir følgende informasjon

  • Skanner guru99-tabell med attributter RAW => true, VERSIONS => 1000
  • Viser rader med kolonnefamilier og verdier
  • I tredje rad viser verdiene som vises slettet verdi i kolonnen
  • Utgangen som vises av den er tilfeldig; det kan ikke være i samme rekkefølge som verdiene vi la inn i tabellen

Klyngereplikasjonskommandoer

  • Disse kommandoene fungerer på klyngesettingsmodus for HBase.
  • For å legge til og fjerne jevnaldrende til klyngen og for å starte og stoppe replikering brukes disse kommandoene generelt.

Kommando

Funksjonalitet

add_peer

Legg til jevnaldrende i klyngen for å replikere

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

remove_peer

Stopper den definerte replikasjonsstrømmen.

Sletter all informasjon om metadata om jevnaldrende

hbase> remove_peer '1'

start_replikasjon

Start alle replikasjonsfunksjonene på nytt

hbase> startreplikasjon

stoppreplikasjon

Stopper alle replikasjonsfunksjonene

hbase> stoppreplikasjon

Sammendrag :

HBase shell og generelle kommandoer gir fullstendig informasjon om forskjellige typer datamanipulering, tabelladministrasjon og klyngereplikasjonskommandoer. Vi kan utføre forskjellige funksjoner ved hjelp av disse kommandoene på tabellene som finnes i HBase.