HBase Shell-kommandoer med eksempler
Etter vellykket installasjon av HBase på toppen av Hadoop får vi et interaktivt skall for å utføre ulike kommandoer og utføre flere operasjoner. Ved å bruke disse kommandoene kan vi utføre flere operasjoner på datatabeller som kan gi bedre datalagringseffektivitet og fleksibel interaksjon fra 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-modell, vi kan utføre alle typer tabell- og dataoperasjoner i HBase. Vi kan samhandle med HBase ved å bruke begge disse metodene.
Den eneste forskjellen mellom disse to er Java API bruker java-kode for å koble til HBase og shell-modus bruker shell-kommandoer for å koble til HBase.
Rask overtak av HBase før vi fortsetter-
- HBase bruker Hadoop filer som lagringssystem for å lagre store datamengder. Hbase består av hovedservere og regionsservere
- Dataene som skal lagres i HBase vil være i form av regioner. Videre vil disse regionene deles opp og lagres i flere regionservere
- Disse shell-kommandoene lar programmereren definere tabellskjemaer og dataoperasjoner ved å bruke fullstendig shell-modusinteraksjon
- Uansett hvilken kommando vi bruker, vil den gjenspeiles i HBase-datamodellen
- Vi bruker HBase shell-kommandoer i operativsystemskripttolkere som Bash shell
- Bash shell er standard kommandotolker for de fleste Linux og Unix driftsdistribusjoner
- HBase avanserte versjoner gir skallkommandoer jruby-stil objektorienterte referanser for tabeller
- Tabellreferansevariabler kan brukes til å utføre dataoperasjoner i HBase-skallmodus
For eksempel,
- I denne opplæringen har vi laget en tabell der 'utdanning' representerer tabellnavnet og tilsvarer kolonnenavnet "guru99".
- I noen kommandoer representerer "guru99," selv et tabellnavn.
Generelle kommandoer
I Hbase er generelle kommandoer kategorisert i følgende kommandoer
- status
- Versjon
- Table_help (skann, slipp, hent, sett, 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 nærmere på alle disse kommandoene og deres bruk en etter en med et eksempel.
status
Syntax:status
Denne kommandoen vil gi detaljer om systemstatus som et antall servere som er tilstede i klyngen, antall aktive servere og gjennomsnittlig belastningsverdi. Du kan også sende noen spesielle parametere avhengig av hvor detaljert status du vil vite om systemet. Parametrene kan være «sammendrag», «enkelt» eller «detaljert», er standardparameteren oppgitt "sammendrag".
Nedenfor har vi vist hvordan du kan sende forskjellige parametere til statuskommandoen.
Hvis vi ser på skjermbildet nedenfor, får vi en bedre ide.
hbase(main):001:0>status hbase(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 tilstedeværende servere, døde servere og gjennomsnittlig serverbelastning, her i skjermbildet viser den informasjonen som- 1 live server, 1 døde servere og 7.0000 gjennomsnittlig belastning.
Versjon
Syntax: version
- Denne kommandoen viser gjeldende HBase-versjon i kommandomodus
- Hvis du kjører versjonskommando, vil den gi utdata som vist ovenfor
Tabellhjelp
Syntax:table_help
Denne kommandoen veileder
- Hva og hvordan du bruker tabellrefererte kommandoer
- Det vil gi forskjellige HBase shell-kommandoer og dens syntakser
- Her på skjermbildet ovenfor viser det syntaksen til "skape" og "få_bord" kommando med bruken. Vi kan manipulere tabellen via disse kommandoene når tabellen er opprettet i HBase.
- Det vil gi tabellmanipulasjonskommandoer som put, get og alle andre kommandoer informasjon.
whoami
Syntaks:
Syntax: Whoami
Denne kommandoen "whoami" brukes til å returnere gjeldende HBase-brukerinformasjon fra HBase-klyngen.
Det vil gi informasjon som
- Grupper tilstede i HBase
- Brukerinformasjonen, for eksempel i dette tilfellet "hduser" representerer brukernavnet som vist på skjermbildet
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 for alle versjoner av en rad – også den gjeldende versjonen.
TTL-tiden kodet i HBase for raden er spesifisert i UTC. Dette attributtet brukes med kommandoer for tabellbehandling.
Viktige forskjeller mellom TTL-håndtering og TTL-er i kolonnefamilien er nedenfor
- Celle-TTL-er uttrykkes i enheter av millisekunder i stedet for sekunder.
- En celle-TTL-er kan ikke forlenge den effektive levetiden til en celle utover en TTL-innstilling på kolonnefamilienivå.
Tabeller Management kommandoer
Disse kommandoene vil tillate programmerere å lage tabeller og tabellskjemaer med rader og kolonnefamilier.
Følgende er tabellbehandlingskommandoer
- Opprett
- Liste
- Beskriv
- Deaktiver
- Deaktiver_alle
- aktiver
- Aktiver_alle
- Drop
- Drop_all
- Vis_filtre
- Alter
- Alter_status
La oss se på ulike kommandobruk i HBase med et eksempel.
Opprett
Syntax: create <tablename>, <columnfamilyname>
Eksempel:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
Eksemplet ovenfor forklarer hvordan du oppretter 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 tabellomfang-attributter inn i den.
For å sjekke om tabellen 'utdanning' er opprettet eller ikke, må vi bruke "liste" kommando som nevnt nedenfor.
Liste
Syntax:list
- "List"-kommandoen vil vise alle tabellene som er til stede eller opprettet i HBase
- Utdataene som vises i skjermbildet ovenfor, viser for øyeblikket de eksisterende tabellene i HBase
- Her i dette skjermbildet viser det at det er totalt 8 tabeller inne i HBase
- Vi kan filtrere utdataverdier fra tabeller ved å sende valgfrie regulære uttrykksparametere
Beskriv
Syntax:describe <table name>
hbase(main):010:0>describe 'education'
Denne kommandoen beskriver den navngitte tabellen.
- Den vil gi mer informasjon om kolonnefamilier som er til stede i den nevnte tabellen
- I vårt tilfelle gir det beskrivelsen av tabellen "utdanning."
- Den vil gi informasjon om tabellnavn med kolonnefamilier, tilhørende filtre, versjoner og noen flere detaljer.
deaktivere
Syntax: disable <tablename>
hbase(main):011:0>disable 'education'
- Denne kommandoen vil begynne å deaktivere den navngitte tabellen
- Hvis tabellen må slettes eller slettes, må den deaktiveres først
Her, i skjermbildet ovenfor, deaktiverer vi tabellundervisning
deaktiver_alle
Syntax: disable_all<"matching regex"
- Denne kommandoen vil deaktivere alle tabellene som samsvarer med det gitte regulære uttrykket.
- Implementeringen er den samme som delete-kommando (bortsett fra å legge til regulært uttrykk for matching)
- Når tabellen blir deaktivert, kan brukeren slette tabellen fra HBase
- Før du sletter eller sletter tabellen, bør den deaktiveres først
aktiver
Syntax: enable <tablename>
hbase(main):012:0>enable 'education'
- Denne kommandoen vil begynne å aktivere den navngitte tabellen
- Uansett hvilken tabell som er deaktivert, bruker vi denne kommandoen for å gå tilbake til sin forrige tilstand
- Hvis en tabell er deaktivert i første omgang og ikke slettet eller slettet, og hvis vi ønsker å gjenbruke den deaktiverte tabellen, må vi aktivere den ved å bruke denne kommandoen.
- Her i skjermbildet ovenfor aktiverer vi tabellen "utdanning."
vis_filtre
Syntax: show_filters
Denne kommandoen viser alle filtrene som finnes i HBase som ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter, etc.
slipp
Syntax:drop <table name>
hbase(main):017:0>drop 'education'
Vi må observere punktene nedenfor for drop-kommando
- For å slette tabellen som finnes i HBase, må vi først deaktivere den
- For å droppe tabellen som finnes i HBase, må vi først deaktivere den
- Så enten tabellen for å slippe eller slette først, bør tabellen deaktiveres ved å bruke deaktiver kommandoen
- Her i skjermbildet ovenfor dropper vi tabellen "utdanning."
- Før du utfører denne kommandoen, er det nødvendig at du deaktiverer tabellen "utdanning."
drop_all
Syntax: drop_all<"regex">
- Denne kommandoen vil slette alle tabellene som samsvarer med det gitte regulære uttrykket
- Tabeller må først deaktiveres før du utfører denne kommandoen ved å bruke disable_all
- Tabeller med regex-matchende uttrykk kommer til å falle fra HBase
er_aktivert
Syntax: is_enabled 'education'
Denne kommandoen vil bekrefte om den navngitte tabellen er aktivert eller ikke. Vanligvis er det litt forvirring mellom "enable" og "is_enabled" kommandohandling, som vi fjerner her
- Anta at en tabell er deaktivert, for å bruke den tabellen må vi aktivere den ved å bruke enable-kommandoen
- is_enabled-kommandoen vil sjekke enten tabellen er aktivert eller ikke
endre
Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5
Denne kommandoen endrer kolonnefamilieskjemaet. For å forstå nøyaktig hva det gjør, har vi forklart det her med et eksempel.
Eksempler:
I disse eksemplene skal vi utføre endringskommandooperasjoner på tabeller og på dens kolonner. Vi vil utføre operasjoner som
- Endring av familienavn med enkelt, flere kolonner
- Sletter kolonnefamilienavn fra tabell
- Flere andre operasjoner som bruker omfangsattributter med tabell
- For å endre eller legge til 'guru99_1'-kolonnefamilien i tabellen 'education' fra gjeldende verdi for å beholde maksimalt 5 celleVERSJONER,
- "education" er tabellnavnet opprettet med kolonnenavnet "guru99" tidligere
- Her ved hjelp av en alter-kommando prøver vi å endre kolonnefamilieskjemaet til guru99_1 fra guru99
hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
- Du kan også bruke alter-kommandoen på flere kolonnefamilier. For eksempel vil vi definere to nye kolonner til vår eksisterende tabell "utdanning".
hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
- Vi kan endre mer enn ett kolonneskjema om gangen ved å bruke denne kommandoen
- guru99_2 og guru99_3 som vist i skjermbildet ovenfor er de to nye kolonnenavnene som vi har definert for tabellutdanningen
- Vi kan se måten å bruke denne kommandoen på i forrige skjermbilde
- 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
- Som vist i skjermbildene nedenfor, viser den to trinn – hvordan du endrer attributtet for tabellomfang og hvordan du fjerner attributtet for tabellomfang.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'
Trinn 1) Du kan endre tabellomfang-attributter som MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, etc. Disse kan settes på slutten; for eksempel for å endre maksstørrelsen på en region til 128MB eller en annen minneverdi vi bruker denne kommandoen.
Bruk:
- Vi kan bruke MAX_FILESIZE med tabellen som scope-attributt som ovenfor
- Tallet representert i MAX_FILESIZE er i term av minne i byte
NOTE: MAX_FILESIZE Attributttabellsomfang vil bli bestemt av noen attributter som finnes i HBase. MAX_FILESIZE kommer også inn under tabellomfangsattributter.
Trinn 2) Du kan også fjerne et table-scope-attributt ved å bruke table_att_unset-metoden. Hvis du ser kommandoen
alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
- Skjermbildet ovenfor viser endret tabellnavn med scope-attributter
- Metoden table_att_unset brukes til å deaktivere attributter som finnes i tabellen
- Den andre forekomsten fjerner vi attributtet MAX_FILESIZE
- Etter utførelse av kommandoen vil den ganske enkelt fjerne MAX_FILESIZE-attributtet fra "education"-tabellen.
alter_status
Syntax: alter_status 'education'
- Gjennom denne kommandoen kan du få statusen til alter-kommandoen
- Som indikerer antall regioner i tabellen som har mottatt det oppdaterte skjemapasseringstabellnavnet
- Her i skjermbildet ovenfor viser det 1/1 regioner oppdatert. Det betyr at den har oppdatert én region. Etter det, hvis det lykkes, vil det vise kommentar ferdig.
Datamanipulasjonskommandoer
Disse kommandoene vil fungere på tabellen relatert til datamanipulasjoner som å legge data inn i en tabell, hente data fra en tabell og slette skjema, etc.
Kommandoene kommer under disse er
- Telle
- Sette
- Ta
- Delete
- Slette alle
- avkorte
- Skanne
La se nærmere på bruken av disse kommandoene med et eksempel.
Telle
Syntax: count <'tablename'>, CACHE =>1000
- Kommandoen vil hente antallet av et antall rader i en tabell. Verdien som returneres av denne er antall rader.
- Gjeldende antall vises per hver 1000 rad som standard.
- Telleintervall kan spesifiseres valgfritt.
- Standard cachestørrelse er 10 rader.
- Count-kommandoen vil fungere raskt når den er konfigurert med riktig hurtigbuffer.
Eksempel:
hbase> count 'guru99', CACHE=>1000
Dette eksempeltellingen henter 1000 rader om gangen fra "Guru99"-tabellen.
Vi kan lage cache til en lavere verdi hvis tabellen består av flere rader.
Men som standard vil den hente en rad om gangen.
hbase>count 'guru99', INTERVAL => 100000 hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000
Hvis anta at hvis tabellen "Guru99" har en tabellreferanse som si g.
Vi kan kjøre tellekommandoen på tabellreferanse også som nedenfor
hbase>g.count INTERVAL=>100000 hbase>g.count INTERVAL=>10, CACHE=>1000
Sette
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Denne kommandoen brukes til følgende ting
- Det vil sette en celle 'verdi' ved definert eller spesifisert tabell eller rad eller kolonne.
- Den vil valgfritt koordinere tidsstempling.
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 i 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
- Utgangen vil være som vist i skjermbildet ovenfor etter å ha plassert verdier i "guru99".
For å sjekke om inngangsverdien er satt inn riktig i tabellen, bruker vi "skann"-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', 10 put 'guru99', 'r1', 'Edu:c1', 'value', 15 put 'guru99', 'r1', 'Edu:c1', 'value', 30
Fra kodebiten gjør vi disse tingene
- Her lager vi en tabell kalt 'guru99' med kolonnenavnet som "Edu."
- Ved å bruke "put"-kommandoen, plasserer vi verdier i radnavn r1 i kolonne "Edu" i tabellen "guru99."
Ta
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Her inkluderer TIMERANGE, TIME STAMP, VERSIONS og FILTRE.
Ved å bruke denne kommandoen vil du få en rad eller celleinnhold til stede i tabellen. I tillegg til det kan du også legge til flere parametere som TIMESTAMP, TIMERANGE, VERSIONS, FILTERS, etc. for å få en bestemt rad eller celleinnhold.
Eksempler:-
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
For tabellen “guru99′ vises rad r1 og kolonne c1 ved å bruke denne kommandoen som vist i skjermbildet ovenfor
hbase> get 'guru99', 'r1'
For tabellen "guru99" vil rad r1-verdier vises ved hjelp av denne kommandoen
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
For tabellen "guru99" vil rad 1-verdier i tidsrommet ts1 og ts2 vises ved hjelp av denne kommandoen
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
For tabell "guru99" vil rad r1 og kolonnefamiliers c1, c2, c3 verdier vises ved å bruke denne kommandoen
Delete
Syntax:delete <'tablename'>,<'row name'>,<'column name'>
- Denne kommandoen vil slette celleverdi ved definert tabell i rad eller kolonne.
- Slett må og bør samsvare nøyaktig med de slettede cellekoordinatene.
- Ved skanning undertrykker delete cell eldre versjoner av verdier.
Eksempel:
hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
- Utførelsen ovenfor 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.slett 'guru99', 'r1', 'c1′".
slett alt
Syntax: deleteall <'tablename'>, <'rowname'>
- Denne kommandoen vil slette alle cellene i en gitt rad.
- Vi kan definere valgfritt kolonnenavn og tidsstempel til syntaksen.
Eksempel:-
hbase>deleteall 'guru99', 'r1', 'c1'
Dette vil slette alle rader og kolonner i tabellen. Eventuelt kan vi nevne kolonnenavn i det.
avkorte
Syntax: truncate <tablename>
Etter trunkering av en hbase-tabell vil skjemaet presentere men ikke postene. Denne kommandoen utfører 3 funksjoner; disse er oppført nedenfor
- Deaktiverer tabellen hvis den allerede finnes
- Dropper tabellen hvis den allerede presenterer
- Gjenskaper den nevnte tabellen
Skanne
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 som finnes i systemet.
- Skannerspesifikasjoner kan inneholde en eller flere av følgende attributter.
- Disse er TIMERANGE, FILTER, TIME STAMP, LIMIT, MAXLENGTH, COLONNS, CACHE, STARTROW og STOPROW.
scan 'guru99'
Utgangen som vist nedenfor i skjermbilde
I skjermbildet ovenfor
- Den viser "guru99" tabell med kolonnenavn og verdier
- Den består av tre radverdier r1, r2, r3 for én kolonneverdi c1
- Den viser verdiene knyttet til rader
Eksempler:-
De forskjellige bruksområdene for skannekommando
Kommando | bruk |
---|---|
skann '.META.', {COLUMNS => 'info:regioninfo'} | Den viser all metadatainformasjon relatert til kolonner som finnes i tabellene i HBase |
skann 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} | Den viser innholdet i tabellguru99 med deres kolonnefamilier 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 tidsintervallattributtverdien |
skann 'guru99', {RAW => true, VERSJONER =>10} | I denne kommandoen gir RAW=> true avansert funksjon som å vise alle celleverdiene som er tilstede i tabellen guru99 |
Kodeeksempel:
Lag først tabell og plasser verdier i tabellen
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
Inndataskjermbilde:
Hvis vi kjører skannekommando
Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}
Den vil vise utdata vist nedenfor.
Utgang skjermbilde:
Utdataene vist i skjermbildet ovenfor gir følgende informasjon
- Skanner guru99-tabell med attributter RAW=>true, VERSJONER=>1000
- Viser rader med kolonnefamilier og verdier
- I den tredje raden viser verdiene som vises, slettet verdi i kolonnen
- Utgangen som vises av den er tilfeldig; den kan ikke ha samme rekkefølge som verdiene vi satte inn i tabellen
Cluster Replikeringskommandoer
- Disse kommandoene fungerer i klyngeoppsettmodus til HBase.
- For å legge til og fjerne peers 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 replikeringsstrømmen.
Sletter all metadatainformasjon om peer hbase> remove_peer '1' |
start_replikering | Starter alle replikeringsfunksjonene på nytt
hbase> start_replikering |
stop_replikering | Stopper alle replikeringsfunksjonene
hbase>stopp_replikering |
Oppsummering
HBase-skall og generelle kommandoer gir fullstendig informasjon om forskjellige typer datamanipulering, tabelladministrasjon og klyngreplikeringskommandoer. Vi kan utføre ulike funksjoner ved å bruke disse kommandoene på tabeller som finnes i HBase.