HBase Shell kommandoer med eksempler

Indholdsfortegnelse:

Anonim

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 hjælp af disse kommandoer kan vi udføre flere operationer på datatabeller, der kan give bedre datalagringseffektivitet og fleksibel interaktion af klienten.

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

  • HBase interaktiv skaltilstand og
  • Gennem Java API

I HBase bruges interaktiv shell-tilstand til at interagere med HBase til tabeloperationer, tabeladministration og datamodellering. Ved hjælp af Java API-modellen kan vi udføre alle typer tabel- og datahandlinger i HBase. Vi kan interagere med HBase ved hjælp af begge disse metoder.

Den eneste forskel mellem disse to er Java API-brug java-kode til at oprette forbindelse til HBase og shell-tilstand bruge shell-kommandoer til at oprette forbindelse til HBase.

Hurtig overkapacitet 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 gemmes i HBase, vil være i form af regioner. Desuden opdeles disse regioner og lagres på flere regionsservere
  • Denne shell-kommando giver programmøren mulighed for at definere tabelskemaer og datahandlinger ved hjælp af komplet shell-mode-interaktion
  • Uanset hvilken kommando vi bruger, vil den afspejle sig i HBase-datamodellen
  • Vi bruger HBase shell-kommandoer i operativsystems script tolke som Bash shell
  • Bash shell er standardkommandotolkerne for de fleste af Linux- og Unix-operativ distributioner
  • HBase avancerede versioner indeholder shell-kommandoer i objekter orienterede referencer til jruby-stil til tabeller
  • Tabelreferencevariabler kan bruges til at udføre datahandlinger i HBase-shell-tilstand

For eksempler ,

  • I denne vejledning har vi oprettet en tabel, hvor 'uddannelse' repræsenterer tabelnavn og svarer til kolonnenavn "guru99".
  • I nogle kommandoer repræsenterer "guru99" i sig selv et tabelnavn.

I denne vejledning - lærer du,

  • Generelle kommandoer
  • Kommandoer for tabelleradministrationer
  • Datamanipulationskommandoer
  • Klyngereplikeringskommandoer

Generelle kommandoer

I Hbase kategoriseres generelle kommandoer i følgende kommandoer

  • Status
  • Version
  • Tabel_hjælp (scan, slip, hent, sæt, deaktiver osv.)
  • Hvem er jeg

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

hbase Shell

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

Lad os se på alle disse kommandoer og deres anvendelse en efter en med et eksempel.

Status

Syntax:status

Denne kommando giver detaljer om systemstatus som et antal servere, der er til stede i klyngen, aktivt serverantal og gennemsnitlig belastningsværdi. Du kan også videregive bestemte parametre afhængigt af, hvor detaljeret status du vil vide om systemet. Parametrene kan være 'resume', 'enkle' eller 'detaljerede' , den angivne standardparameter er "resume".

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

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

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 udfører denne kommandostatus, vil den give oplysninger om antallet af serverens nuværende, døde servere og den gennemsnitlige belastning af serveren, her på skærmbilledet viser den informationen som 1 live server, 1 døde servere og 7.0000 gennemsnitlig belastning.

Version

Syntax: version

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

Hjælp til bordet

Syntax:table_help

Denne kommando guider

  • Hvad og hvordan man bruger tabelhenviste kommandoer
  • Det vil give forskellige HBase shell-kommandoforbrug og dens syntakser
  • Her i skærmbilledet ovenfor viser det syntaksen til " Opret" og " get_table" -kommandoen med dens brug. Vi kan manipulere tabellen via disse kommandoer, når tabellen oprettes i HBase.
  • Det giver tabelmanipulationer kommandoer som put, get og alle andre kommandoer information.

hvem er jeg

Syntaks:

Syntax: Whoami

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 i skærmbillede

TTL (Time To Live) - Attribut

I HBase kan kolonnefamilier indstilles til tidsværdier i sekunder ved hjælp af TTL. HBase sletter automatisk rækker, når udløbstiden er nået. Denne attribut 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 med kommandoer til tabeladministration.

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

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

Kommandoer for tabelleradministrationer

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

Følgende er kommandoer til tabeladministration

  • skab
  • Liste
  • Beskrive
  • Deaktiver
  • Slå alt fra
  • Aktiver
  • Aktivér_alle
  • Dråbe
  • Drop_all
  • Show_filters
  • Ændre
  • Alter_status

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

skab

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 man opretter en tabel i HBase med det angivne navn i henhold til ordbogen eller specifikationerne pr. Kolonnefamilie. Ud over dette kan vi også videregive nogle attributter i tabelområdet til det.

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

Liste

Syntax:list

  • Kommandoen "Liste" viser 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 i alt er 8 tabeller til stede inde i HBase
  • Vi kan filtrere outputværdier fra tabeller ved at overføre valgfri parametre til regulært udtryk

Beskrive

Syntax:describe 

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

Denne kommando beskriver den navngivne tabel.

  • Det giver mere information om kolonnefamilier til stede i den nævnte tabel
  • I vores tilfælde giver den beskrivelsen om tabellen "uddannelse".
  • Det giver oplysninger om tabelnavn med kolonnefamilier, tilknyttede filtre, versioner og nogle flere detaljer.

deaktiver

Syntax: disable 

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

Her i ovenstående skærmbillede deaktiverer vi tabeluddannelse

slå alt fra

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

Aktiver

Syntax: enable 

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

show_filters

Syntax: show_filters

Denne kommando viser alle filtre til stede i HBase som ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter osv.

dråbe

Syntax:drop 

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

Vi skal overholde nedenstående punkter for drop-kommando

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

drop_all

Syntax: drop_all<"regex">
  • Denne kommando slipper alle tabeller, der matcher den givne regex
  • Tabeller skal først deaktiveres, før denne kommando udføres ved hjælp af disable_all
  • Tabeller med regex-matchende udtryk falder fra HBase

er_aktiveret

Syntax: is_enabled 'education'

Denne kommando kontrollerer, om den navngivne tabel er aktiveret eller ej. Normalt er der en lille forvirring mellem "aktiv" og "is_enabled" kommandohandling, som vi rydder her

  • Antag, at en tabel er deaktiveret, hvis vi skal bruge den tabel, skal vi aktivere den ved hjælp af aktiver-kommandoen
  • kommandoen is_enabled vil kontrollere, om tabellen er aktiveret eller ikke

ændre

Syntax: alter 
, NAME=>, 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 ændringskommandofunktioner på tabeller og på dens kolonner. Vi udfører operationer som

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

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}

  • Vi kan ændre mere end en kolonneskema ad gangen ved hjælp af denne kommando
  • guru99_2 og guru99_3 som vist i ovenstående skærmbillede er de to nye kolonnenavne, som vi har defineret til 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. Sletning af '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 kolonneområdet guru99_1, som vi tidligere oprettede i det første trin

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

Trin 1) Du kan ændre attributter for tabelomfang som MAX_FILESIZE, LÆSES, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH osv. Disse kan sættes i slutningen; for eksempel for at ændre den maksimale størrelse på en region til 128 MB eller enhver anden hukommelsesværdi, vi bruger denne kommando.

Anvendelse:

  • Vi kan bruge MAX_FILESIZE med tabellen som omfangsattribut som ovenfor
  • Antallet repræsenteret i MAX_FILESIZE er i hukommelsestid i byte

N OTE: MAX_FILESIZE Egenskab Tabel omfang vil blive bestemt af nogle attributter stede i HBase. MAX_FILESIZE kommer også under attributter for tabelomfang.

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

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • Ovenstående skærmbillede viser ændret tabelnavn med omfangsattributter
  • Metodetabel_att_unset bruges til at fjerne sæt attributter, der findes i tabellen
  • Den anden instans fratager vi attributten MAX_FILESIZE
  • Efter udførelse af kommandoen vil den simpelthen frakoble MAX_FILESIZE-attribut fra "uddannelse" -tabellen.

alter_status

 Syntax: alter_status 'education'

  • Via denne kommando kan du få status på alter-kommandoen
  • Hvilket angiver antallet af regioner i tabellen, der har modtaget det opdaterede skema-pass-tabelnavn
  • Her i ovenstående skærmbillede vises 1/1 regioner opdateret. Det betyder, at den har opdateret en region. Derefter, hvis det lykkes, vises det udført kommentar.

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
  • Slet
  • Slet alt
  • Afkort
  • Scan

Lad os se på disse kommandos brug med et eksempel.

Tælle

Syntax: count <'tablename'>, CACHE =>1000
  • Kommandoen henter antallet af et antal rækker i en tabel. Den værdi, der returneres af denne, er antallet af rækker.
  • Nuværende antal vises pr. 1000 rækker som standard.
  • Tælleinterval kan eventuelt angives.
  • Standard cache størrelse er 10 rækker.
  • Count-kommandoen fungerer hurtigt, når den er konfigureret med den rigtige cache.

Eksempel:

hbase> count 'guru99', CACHE=>1000

Dette eksempel tæller 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 henter den en række ad gangen.

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

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

Vi kan køre tællekommandoen på tabelhenvisning også som nedenfor

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

Sætte

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

Denne kommando bruges til at følge tingene

  • Det placerer en celle 'værdi' i defineret eller specificeret tabel eller række eller kolonne.
  • Det vil eventuelt koordinere tidsstempel.

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 og 30 i tabellen "guru99" som vist på skærmbilledet nedenfor

  • Antag, at hvis tabellen "Guru99" har en tabelhenvisning som f.eks. G. Vi kan også køre kommandoen på tabelhenvisning også ligesom

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Outputtet vil være som vist i ovenstående skærmbillede efter placering af værdier i "guru99".

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

Kodestykke: Til 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 kodestykket laver vi disse ting

  • Her opretter vi en tabel med navnet 'guru99' med kolonnenavnet som "Edu."
  • Ved at bruge kommandoen "sæt" placerer vi værdier i rækkenavn r1 i kolonne "Edu" i tabel "guru99."

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

Her inkluderer TIMERANGE, TIMESTAMP, VERSIONS og FILTERS.

Ved at bruge denne kommando får du en række eller et celleindhold til stede i tabellen. Derudover kan du også tilføje yderligere parametre til det som TIMESTAMP, TIMERANGE, VERSIONER, FILTER osv. For at få en bestemt række eller celleindhold.

Eksempler: -

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

For tabel "vises guru99 '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 tabel "guru99" vises række r1-værdier ved hjælp af denne kommando

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

For tabel "guru99" vises række 1-værdier i tidsområdet ts1 og ts2 ved hjælp af denne kommando

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

For tabel "guru99" vises række r1 og kolonnefamiliernes c1-, c2-, c3-værdier ved hjælp af denne kommando

Slet

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Denne kommando sletter celleværdien i den definerede tabel i række eller kolonne.
  • Slet skal og skal matche de slettede cellekoordinater nøjagtigt.
  • Slet celle undertrykker ældre versioner af værdier under scanning.

Eksempel:

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

slet alt

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

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

Eksempel:-

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

Dette sletter alle de rækker og kolonner, der findes i tabellen. Eventuelt kan vi nævne kolonnenavne i det.

Afkort

Syntax: truncate 

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

  • Deaktiverer tabel, hvis den allerede præsenteres
  • Drop tabellen, hvis den 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 valgfri 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, COLUMNS, CACHE, STARTROW og STOPROW.
scan 'guru99' 

Outputtet som vist nedenfor i skærmbillede

I ovenstående skærmbillede

  • Det viser "guru99" -tabellen med kolonnenavn og værdier
  • Den består af tre rækkeværdier r1, r2, r3 for enkeltkolonneværdien c1
  • Det viser de værdier, der er knyttet til rækker

Eksempler: -

De forskellige anvendelser af scanningskommandoer

Kommando

Anvendelse

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

Det viser alle metadataoplysninger relateret til kolonner, der findes i tabellerne i HBase

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

Det viser indholdet af tabel guru99 med deres kolonnefamilier c1 og c2, der begrænser værdierne til 10

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

Det viser indholdet af guru99 med kolonnenavn c1 med de værdier, der er til stede mellem den nævnte tidsintervallattributværdi

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

I denne kommando giver RAW => true avanceret funktion som at vise alle de celleværdier, der findes i tabellen guru99

Kodeeksempel:

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

Indgangsskærmbillede:

Hvis vi kører scan kommando

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

Det viser output vist nedenfor.

Skærmbillede af output:

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

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

Klyngereplikeringskommandoer

  • Disse kommandoer fungerer på klyngesæt-tilstand af HBase.
  • Disse kommandoer bruges generelt til at tilføje og fjerne jævnaldrende til klyngen og til at starte og stoppe replikering.

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 replikationsstrøm.

Sletter alle metadataoplysninger om peer

hbase> remove_peer '1'

start_replikation

Genstarter alle replikeringsfunktioner

hbase> start_replikation

stop_replikation

Stopper alle replikationsfunktioner

hbase> stop_replikation

Resume :

HBase shell og generelle kommandoer giver komplette oplysninger om forskellige typer datamanipulation, tabeladministration og klyngereplikeringskommandoer. Vi kan udføre forskellige funktioner ved hjælp af disse kommandoer på tabeller, der findes i HBase.