HBase Shell-kommandoer med eksempler

Efter vellykket installation af HBase oven på Hadoop får vi en interaktiv shell til at udføre forskellige kommandoer og udføre flere operationer. Ved at bruge disse kommandoer kan vi udføre flere operationer på datatabeller, der kan give bedre datalagringseffektivitet og fleksibel interaktion fra klientens side.

Vi kan interagere med HBase på to måder,

  • HBase interaktiv skaltilstand og
  • Gennem Java API

I HBase bruges interaktiv skaltilstand til at interagere med HBase til tabeloperationer, tabelstyring og datamodellering. Ved at bruge Java API-model, vi kan udføre alle typer tabel- og dataoperationer i HBase. Vi kan interagere med HBase ved at bruge begge disse metoder.

Den eneste forskel mellem disse to er Java API bruger java-kode til at forbinde med HBase, og shell-tilstand bruger shell-kommandoer til at forbinde med HBase.

Hurtig overdækning af HBase før vi fortsætter-

  • HBase bruger Hadoop filer som lagringssystem til at gemme de store mængder data. Hbase består af masterservere og regionsservere
  • De data, der skal lagres i HBase, vil være i form af regioner. Yderligere vil disse regioner blive opdelt og lagret på flere regionsservere
  • Denne shell-kommandoer giver programmøren mulighed for at definere tabelskemaer og dataoperationer ved hjælp af komplet shell-mode-interaktion
  • Uanset hvilken kommando vi bruger, vil det afspejle sig i HBase-datamodellen
  • Vi bruger HBase shell-kommandoer i operativsystemets scriptfortolkere som Bash shell
  • Bash shell er standard kommandofortolkere for de fleste Linux og Unix driftsfordelinger
  • HBase avancerede versioner giver shell-kommandoer jruby-stil objektorienterede referencer til tabeller
  • Tabelreferencevariabler kan bruges til at udføre dataoperationer i HBase shell-tilstand

For eksempler,

  • I denne vejledning har vi lavet en tabel, hvor 'uddannelse' repræsenterer tabelnavnet og svarer til kolonnenavnet "guru99".
  • I nogle kommandoer repræsenterer "guru99" selv et tabelnavn.

Generelle kommandoer

I Hbase er generelle kommandoer kategoriseret i følgende kommandoer

  • Status
  • Udgave
  • Table_help (scan, slip, hent, sæt, deaktiver osv.)
  • Hvem er jeg

For at komme ind i HBase shell-kommandoen skal vi først og fremmest udføre koden som nævnt nedenfor

Generelle kommandoer

hbase Shell

Når vi kommer ind i HBase shell, kan vi udføre alle shell-kommandoer nævnt nedenfor. Ved hjælp af disse kommandoer kan vi udføre alle typer tabeloperationer i HBase-skaltilstanden.

Lad os se nærmere på alle disse kommandoer og deres brug en efter en med et eksempel.

Status

Syntax:status

Denne kommando vil give detaljer om systemstatus som et antal servere til stede i klyngen, antal aktive servere og gennemsnitlig belastningsværdi. Du kan også videregive bestemte parametre afhængigt af, hvor detaljeret status du ønsker at vide om systemet. Parametrene kan være 'resumé', 'simpel' eller 'detaljeret', er standardparameteren "resumé".

Nedenfor har vi vist, hvordan du kan overføre forskellige parametre til statuskommandoen.

Hvis vi observerer nedenstående skærmbillede, får vi en bedre idé.

Status

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 udfører denne kommandostatus, vil den give information om antal servers tilstedeværende, døde servere og gennemsnitlig belastning af serveren, her i skærmbilledet viser den informationen som- 1 live server, 1 døde servere og 7.0000 gennemsnitlig belastning.

Udgave

Syntax: version

Udgave

  • Denne kommando viser den aktuelt brugte HBase-version i kommandotilstand
  • Hvis du kører versionskommando, vil den give output som vist ovenfor

Bordhjælp

Syntax:table_help

Tabel Hjælp

Denne kommando vejleder

  • Hvad og hvordan man bruger tabel-refererede kommandoer
  • Det vil give forskellige HBase shell-kommandobrug og dets syntakser
  • Her på skærmbilledet ovenfor viser den syntaksen til "skab" og "få_bord" kommando med dens brug. Vi kan manipulere tabellen via disse kommandoer, når først tabellen er oprettet i HBase.
  • Det vil give tabel manipulationer kommandoer som put, get og alle andre kommandoer information.

whoami

Syntaks:

Syntax: Whoami

Hvem er jeg

Denne kommando "whoami" bruges til at returnere den aktuelle HBase-brugerinformation fra HBase-klyngen.

Det vil give information som

  • Grupper til stede i HBase
  • Brugeroplysningerne, for eksempel i dette tilfælde "hduser" repræsenterer brugernavnet som vist på skærmbilledet

TTL (Time To Live) – Attribut

I HBase kan kolonnefamilier indstilles til tidsværdier i sekunder ved hjælp af TTL. HBase vil automatisk slette rækker, når udløbstiden er nået. Denne egenskab gælder for alle versioner af en række – også den aktuelle version.

TTL-tiden kodet i HBase for rækken er angivet i UTC. Denne attribut bruges sammen med kommandoer til tabelstyring.

Vigtige forskelle mellem TTL-håndtering og TTL'er i kolonnefamilien er nedenfor

  • Celle TTL'er er udtrykt i enheder af millisekunder i stedet for sekunder.
  • En celle TTL'er kan ikke forlænge den effektive levetid for en celle ud over en TTL-indstilling på kolonnefamilieniveau.

Tabeller Ledelseskommandoer

Disse kommandoer giver programmører mulighed for at oprette tabeller og tabelskemaer med rækker og kolonnefamilier.

Følgende er tabelstyringskommandoer

  • Opret
  • Liste
  • Beskriv
  • Deaktiver
  • Slå alt fra
  • Aktiver
  • Enable_all
  • Drop
  • Drop_all
  • Vis_filtre
  • Alder
  • Alter_status

Lad os se på forskellige kommandobrug i HBase med et eksempel.

Opret

Syntax: create <tablename>, <columnfamilyname>

Tabeller Management kommandoer: Opret

Eksempel:-

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

Ovenstående eksempel forklarer, hvordan man opretter en tabel i HBase med det specificerede navn givet i henhold til ordbogen eller specifikationerne i henhold til kolonnefamilien. Ud over dette kan vi også overføre nogle tabel-omfang-attributter ind i den.

For at kontrollere, om tabellen 'uddannelse' er oprettet eller ej, skal vi bruge "liste" kommando som nævnt nedenfor.

Liste

Syntax:list

Tabeller Ledelseskommandoer: Liste

  • Kommandoen "List" vil vise alle de tabeller, der er til stede eller oprettet i HBase
  • Outputtet, der vises i ovenstående skærmbillede, viser i øjeblikket de eksisterende tabeller i HBase
  • Her i dette skærmbillede viser det, at der er i alt 8 borde til stede i HBase
  • Vi kan filtrere outputværdier fra tabeller ved at overføre valgfri regulære udtryksparametre

Beskriv

Syntax:describe <table name>

Tabeller Ledelseskommandoer: Beskriv

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

Denne kommando beskriver den navngivne tabel.

  • Det vil give mere information om kolonnefamilier, der findes i den nævnte tabel
  • I vores tilfælde giver det beskrivelsen af ​​tabellen "uddannelse".
  • Det vil give information om tabelnavn med kolonnefamilier, tilhørende filtre, versioner og nogle flere detaljer.

deaktivere

Syntax: disable <tablename>

Tabeller Management kommandoer: Deaktiver

hbase(main):011:0>disable 'education'
  • Denne kommando vil begynde at deaktivere den navngivne tabel
  • Hvis tabellen skal slettes eller slettes, skal den først deaktiveres

Her, i ovenstående skærmbillede, deaktiverer vi bordundervisning

slå alt fra

 Syntax: disable_all<"matching regex"
  • Denne kommando vil deaktivere alle tabeller, der matcher det givne regex.
  • Implementeringen er den samme som delete-kommando (undtagen tilføjelse af regex til matchning)
  • Når bordet bliver deaktiveret, kan brugeren slette bordet fra HBase
  • Før du sletter eller sletter tabellen, skal den først deaktiveres

Aktiver

Syntax: enable <tablename>

Tabeller Management kommandoer: Aktiver

hbase(main):012:0>enable 'education'
  • Denne kommando vil begynde at aktivere den navngivne tabel
  • Uanset hvilken tabel der er deaktiveret, bruger vi denne kommando for at vende tilbage til dens tidligere tilstand
  • Hvis en tabel i første omgang er deaktiveret og ikke slettet eller slettet, og hvis vi ønsker at genbruge den deaktiverede tabel, skal vi aktivere den ved at bruge denne kommando.
  • Her i ovenstående skærmbillede aktiverer vi tabellen "uddannelse".

vis_filtre

Syntax: show_filters

Tabeller Management kommandoer: show_filters

Denne kommando viser alle de filtre, der findes i HBase, såsom ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter osv.

drop

Syntax:drop <table name>

Tabeller Ledelseskommandoer: Drop

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

Vi skal observere nedenstående punkter for drop-kommando

  • For at slette tabellen, der findes i HBase, skal vi først deaktivere den
  • For at droppe den tabel, der findes i HBase, skal vi først deaktivere den
  • Så enten tabel, der skal slettes eller slettes først, skal tabellen deaktiveres ved hjælp af disable-kommandoen
  • Her i ovenstående skærmbillede dropper vi tabellen "uddannelse".
  • Før udførelse af denne kommando, er det nødvendigt, at du deaktiverer tabellen "uddannelse".

drop_all

Syntax: drop_all<"regex">
  • Denne kommando vil slette alle de tabeller, der matcher det givne regex
  • Tabeller skal først deaktiveres, før du udfører denne kommando ved hjælp af disable_all
  • Tabeller med regex-matchende udtryk vil falde fra HBase

er_aktiveret

Syntax: is_enabled 'education'

Denne kommando vil bekræfte, om den navngivne tabel er aktiveret eller ej. Normalt er der en lille forvirring mellem "enable" og "is_enabled" kommandohandling, som vi rydder her

  • Antag at en tabel er deaktiveret, for at bruge den tabel skal vi aktivere den ved at bruge enable-kommandoen
  • kommandoen is_enabled vil kontrollere, om tabellen er aktiveret eller ej

ændre

Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5

Denne kommando ændrer kolonnefamilieskemaet. For at forstå, hvad det præcist gør, har vi forklaret det her med et eksempel.

eksempler:

I disse eksempler skal vi udføre ændringskommandoer på tabeller og på dens kolonner. Vi vil udføre operationer som

  • Ændring af enkelt, flere kolonnes familienavne
  • Sletning af kolonnefamilienavne fra tabel
  • Flere andre operationer, der bruger omfangsattributter med tabel
  1. For at ændre eller tilføje kolonnefamilien 'guru99_1' i tabellen 'uddannelse' fra den aktuelle værdi for at beholde et maksimum på 5 celleVERSIONER,
  • "uddannelse" er tabelnavn oprettet med kolonnenavn "guru99" tidligere
  • Her forsøger vi ved hjælp af en alter-kommando at ændre kolonnefamilieskemaet til guru99_1 fra guru99

Tabeller Ledelseskommandoer: Ændre

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

Tabeller Ledelseskommandoer: Ændre

  • Vi kan ændre mere end ét kolonneskema ad gangen ved at bruge denne kommando
  • guru99_2 og guru99_3 som vist i ovenstående skærmbillede er de to nye kolonnenavne, som vi har defineret for tabeluddannelsen
  • Vi kan se måden at bruge denne kommando på i det forrige skærmbillede
  1. I dette trin vil vi se, hvordan du sletter kolonnefamilien fra tabellen. For at slette 'f1' kolonnefamilien i tabel 'uddannelse'.

Brug en af ​​disse kommandoer nedenfor,

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'
  • I denne kommando forsøger vi at slette kolonnerummets navn guru99_1, som vi tidligere oprettede i det første trin

Tabeller Ledelseskommandoer: Ændre

  1. Som vist i nedenstående skærmbilleder viser den to trin – hvordan man ændrer tabelomfangsattributten og hvordan man fjerner tabelomfangsattributten.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

Tabeller Ledelseskommandoer: Ændre

Trin 1) Du kan ændre tabel-scope-attributter som MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH osv. Disse kan sættes til sidst; for eksempel for at ændre den maksimale størrelse af en region til 128MB eller enhver anden hukommelsesværdi, vi bruger denne kommando.

Anvendelse:

  • Vi kan bruge MAX_FILESIZE med tabellen som scope-attribut som ovenfor
  • Tallet repræsenteret i MAX_FILESIZE er i term af hukommelse i bytes

NOBS: MAX_FILESIZE Attributtabels omfang vil blive bestemt af nogle attributter, der findes i HBase. MAX_FILESIZE kommer også under tabelomfangsattributter.

Trin 2) Du kan også fjerne en table-scope-attribut ved hjælp af table_att_unset-metoden. Hvis du ser kommandoen

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • Ovenstående skærmbillede viser ændret tabelnavn med scope-attributter
  • Metoden table_att_unset bruges til at deaktivere attributter, der findes i tabellen
  • Det andet tilfælde fjerner vi attributten MAX_FILESIZE
  • Efter udførelse af kommandoen vil den simpelthen fjerne MAX_FILESIZE-attributten fra "uddannelse"-tabellen.

alter_status

 Syntax: alter_status 'education'

Tabeller Management kommandoer: alter_status

  • Gennem denne kommando kan du få status for alter-kommandoen
  • Hvilket angiver antallet af regioner i tabellen, der har modtaget det opdaterede skema-passetabelnavn
  • Her i ovenstående skærmbillede viser det 1/1 regioner opdateret. Det betyder, at den har opdateret én region. Efter det, hvis det lykkedes, vil det vise kommentar udført.

Datamanipulationskommandoer

Disse kommandoer fungerer på tabellen relateret til datamanipulationer, såsom at lægge data i en tabel, hente data fra en tabel og slette skema osv.

Kommandoerne kommer under disse er

  • Tælle
  • Sætte
  • Slette
  • Slet alt
  • afkort
  • Scan

Lad os se nærmere på brugen af ​​disse kommandoer med et eksempel.

Tælle

Syntax: count <'tablename'>, CACHE =>1000
  • Kommandoen vil hente antallet af et antal rækker i en tabel. Værdien returneret af denne er antallet af rækker.
  • Aktuelt antal vises som standard for hver 1000 rækker.
  • Tælleinterval kan eventuelt angives.
  • Standard cachestørrelse er 10 rækker.
  • Tæl-kommandoen fungerer hurtigt, når den er konfigureret med højre cache.

Eksempel:

Tælle

hbase> count 'guru99', CACHE=>1000

Dette eksempelantal henter 1000 rækker ad gangen fra "Guru99"-tabellen.

Vi kan lave cache til en lavere værdi, hvis tabellen består af flere rækker.

Men som standard vil den hente en række ad gangen.

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

Hvis antag, hvis tabellen "Guru99" har en tabelreference som f.eks.

Vi kan køre count-kommandoen på tabelreference også som nedenfor

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

Sætte

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

Denne kommando bruges til følgende ting

  • Det vil sætte en celle 'værdi' ved defineret eller specificeret tabel eller række eller kolonne.
  • Det vil valgfrit koordinere tidsstempling.

Eksempel:

  • Her placerer vi værdier i tabel "guru99" under række r1 og kolonne c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Vi har placeret tre værdier, 10,15, 30 og 99 i tabellen "guruXNUMX" som vist på skærmbilledet nedenfor

Sætte

  • Antag, at hvis tabellen "Guru99" har en tabelreference som f.eks. Vi kan også køre kommandoen på tabelreference også ligesom
    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Outputtet vil være som vist i ovenstående skærmbillede efter at have placeret værdier i "guru99".

For at kontrollere, om inputværdien er korrekt indsat i tabellen, bruger vi "scan" kommandoen. I nedenstående skærmbillede kan vi se, at værdierne er indsat korrekt

Sætte

Kodestykke: Til øvelse

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 kodestykket gør vi disse ting

  • Her opretter vi en tabel ved navn 'guru99' med kolonnenavnet som "Edu."
  • Ved at bruge "put"-kommandoen placerer vi værdier i rækkenavn r1 i kolonne "Edu" i tabellen "guru99."

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

Her omfatter TIMERANGE, TIMESTAMP, VERSIONS og FILTRE.

Ved at bruge denne kommando får du en række eller celleindhold til stede i tabellen. Ud over det kan du også tilføje yderligere parametre til det som TIMESTAMP, TIMERANGE, VERSIONS, FILTERS osv. for at få en bestemt række eller celleindhold.

Få

Eksempler:-

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

For tabellen "guru99′ vises række r1 og kolonne c1 værdier ved hjælp af denne kommando som vist i ovenstående skærmbillede

hbase> get 'guru99', 'r1'

For tabellen "guru99" vil række r1-værdier blive vist ved hjælp af denne kommando

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

For tabellen "guru99" vil række 1-værdier i tidsintervallet ts1 og ts2 blive vist ved hjælp af denne kommando

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

For tabel "guru99" vil række r1 og kolonnefamiliers c1, c2, c3 værdier blive vist ved hjælp af denne kommando

Slette

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Denne kommando vil slette celleværdi ved defineret tabel i række eller kolonne.
  • Slet skal og bør matche de slettede cellers koordinater nøjagtigt.
  • Ved scanning undertrykker slet celle ældre versioner af værdier.

Slette

Eksempel:

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
  • Ovenstående udførelse vil slette række r1 fra kolonnefamilie c1 i tabel "guru99."
  • Antag, at hvis tabellen "guru99" har en tabelreference som f.eks.
  • Vi kan også køre kommandoen på tabelreference ligesom hbase> g.slet 'guru99', 'r1', 'c1′".

slet alt

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

Slet alt

  • Denne kommando vil slette alle celler i en given række.
  • Vi kan eventuelt definere kolonnenavne og tidsstempel til syntaksen.

Eksempel:-

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

Dette vil slette alle rækker og kolonner i tabellen. Eventuelt kan vi nævne kolonnenavne i det.

afkort

Syntax:  truncate <tablename>

afkort

Efter trunkering af en hbase-tabel vil skemaet præsentere, men ikke posterne. Denne kommando udfører 3 funktioner; disse er anført nedenfor

  • Deaktiverer tabellen, hvis den allerede findes
  • Dropper bordet, hvis det allerede præsenterer
  • Genskaber den nævnte tabel

Scan

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

Denne kommando scanner hele tabellen og viser tabelindholdet.

  • Vi kan videregive flere valgfrie specifikationer til denne scanningskommando for at få mere information om tabellerne i systemet.
  • Scannerspecifikationer kan omfatte en eller flere af følgende attributter.
  • Disse er TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLONNS, CACHE, STARTROW og STOPROW.
scan 'guru99'

Output som vist nedenfor i skærmbilledet

Scan

I ovenstående skærmbillede

  • Den viser "guru99" tabel med kolonnenavn og værdier
  • Den består af tre rækkeværdier r1, r2, r3 for enkelt kolonneværdi c1
  • Den viser de værdier, der er knyttet til rækker

Eksempler:-

De forskellige anvendelser af scanningskommando

Kommando Brug
scan '.META.', {COLUMNS => 'info:regioninfo'} Det viser alle metadataoplysninger relateret til kolonner, der er til stede i tabellerne i HBase
scan 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} Det viser indholdet af tabelguru99 med deres kolonnefamilier c1 og c2, hvilket begrænser værdierne til 10
scan 'guru99', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]} Det viser indholdet af guru99 med dets kolonnenavn c1 med værdierne til stede mellem den nævnte tidsinterval attributværdi
scan 'guru99', {RAW => sand, VERSIONER =>10} I denne kommando giver RAW=> true avanceret funktion som at vise alle celleværdier, der er til stede i tabellen guru99

Kode eksempel:

Opret først tabel og placer værdier 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

Input skærmbillede:

Scanningseksempel

Hvis vi kører scan-kommando

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

Det vil vise output vist nedenfor.

Output skærmbillede:

Scanningseksempel

Outputtet vist i ovenstående skærmbillede giver følgende information

  • Scanner guru99-tabel med attributter RAW=>true, VERSIONER=>1000
  • Viser rækker med kolonnefamilier og værdier
  • I den tredje række viser de viste værdier den slettede værdi i kolonnen
  • Det output, der vises af det, er tilfældigt; det kan ikke være samme rækkefølge som de værdier, vi indsatte i tabellen

Cluster Replikeringskommandoer

  • Disse kommandoer virker på klyngeopsætningstilstand for HBase.
  • For at tilføje og fjerne peers til klynge og for at starte og stoppe replikering bruges disse kommandoer generelt.
Kommando Funktionalitet
add_peer Føj peers til klyngen for at replikere

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

remove_peer Stopper den definerede replikeringsstrøm.

Sletter alle metadataoplysninger om peeren

hbase> remove_peer '1'

start_replikering Genstarter alle replikeringsfunktionerne

hbase> start_replikering

stop_replikering Stopper alle replikeringsfunktionerne

hbase>stop_replikering

Resumé

HBase shell og generelle kommandoer giver fuldstændig information om forskellige typer datamanipulation, tabelstyring og klyngreplikeringskommandoer. Vi kan udføre forskellige funktioner ved hjælp af disse kommandoer på tabeller, der findes i HBase.