HBase Shell-kommandoer med eksempler

⚡ Smart opsummering

Med HBase-shellkommandoer kan du administrere tabeller og data direkte fra en interaktiv prompt, grupperet i generelle kommandoer, tabeladministrationskommandoer som f.eks. opret og slip, datamanipulationskommandoer som f.eks. put og get samt klyngereplikeringskommandoer.

  • 🖥️ Generelle kommandoer: status, version, table_help og whoami-rapportklyngestatus og brugeroplysninger.
  • 🗂️ Bordhåndtering: Opret, liste, beskriv, deaktiver, aktiver, slet og ændre opbygnings- og omformningstabeller.
  • ✏️ Datamanipulation: put, get, delete, deleteall, trunker, tæl og scan læse og skrive celleværdier.
  • 🔁 Cluster replikering: add_peer, remove_peer, start_replication og stop_replication administrerer datareplikering.
  • TTL-attribut: Time To Live udløber automatisk kolonnefamilierækker efter et bestemt antal sekunder.
  • 🤖 AI-assistance: AI-assistenter genererer og forklarer HBase-shell-kommandoer fra prompter i letforståeligt sprog.

HBase shell-kommandoer med eksempler på tabeller, data og klyngereplikation

Sådan interagerer du med HBase ved hjælp af Shell-kommandoer og Java API

Efter en vellykket installation af HBase oven på Hadoop får vi en interaktiv shell til at udføre forskellige kommandoer og adskillige operationer. Ved hjælp af disse kommandoer kan vi udføre flere operationer på datatabeller, hvilket giver bedre datalagringseffektivitet og fleksibel interaktion for klienten.

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

  • HBase interaktiv shell-tilstand, og
  • Gennem Java API.

I HBase bruges interaktiv shell-tilstand til at interagere med HBase til tabeloperationer, tabeladministration og datamodellering. Brug af Java API-modellen, kan vi udføre alle typer tabel- og dataoperationer i HBase. Vi kan interagere med HBase ved hjælp af begge disse metoder. Den eneste forskel mellem de to er, at Java API-anvendelser Java kode til at oprette forbindelse til HBase, mens shell-tilstand bruger shell-kommandoer til at oprette forbindelse til HBase.

Kort opsummering af HBase, inden vi fortsætter:

  • HBase bruger Hadoop filer som et lagringssystem til at gemme store mængder data. HBase består af masterservere og regionservere.
  • De data, der skal gemmes i HBase, vil være i form af regioner. Disse regioner vil desuden blive opdelt og gemt på flere regionservere.
  • Disse shell-kommandoer giver programmøren mulighed for at definere tabelskemaer og dataoperationer ved hjælp af komplet interaktion i shell-tilstand.
  • Uanset hvilken kommando vi bruger, vil den afspejles i HBase-datamodellen.
  • Vi bruger HBase-shell-kommandoer i operativsystemscriptfortolkere som Bash-shell'en.
  • Bash-shellen er standardkommandofortolkeren for de fleste Linux og Unix-operativsystemdistributioner.
  • HBase avancerede versioner leverer shell-kommandoer med objektorienterede referencer i JRuby-stil til tabeller.
  • Tabelreferencevariabler kan bruges til at udføre dataoperationer i HBase-shell-tilstand.

For eksempel:

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

Generelle kommandoer

I HBase er generelle kommandoer kategoriseret i følgende kommandoer:

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

For at indtaste HBase shell-kommandoen skal vi først udføre koden som nævnt nedenfor.

hbase Shell

Når vi har åbnet HBase-shell'en, kan vi udføre alle de nedenfor nævnte shell-kommandoer. Ved hjælp af disse kommandoer kan vi udføre alle typer tabeloperationer i HBase-shell-tilstand. Den interaktive shell-prompt vises som vist nedenfor:

HBase interaktiv shell-prompt åbnet med hbase shell-kommandoen

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

Status

Syntax:status

Denne kommando giver detaljer om systemstatus, såsom antallet af servere i klyngen, antallet af aktive servere og den gennemsnitlige belastningsværdi. Du kan også angive bestemte parametre afhængigt af, hvor detaljeret status du vil vide om systemet. Parametrene kan være 'resumé', 'simpel' eller 'detaljeret'; standardparameteren er "resumé".

Nedenfor har vi vist, hvordan du kan sende forskellige parametre til status-kommandoen. Hvis vi ser på skærmbilledet nedenfor, får vi en bedre idé.

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

Statusoutputtet er vist nedenfor:

HBase shell status kommando output viser aktive servere, døde servere og gennemsnitlig belastning

Når vi udfører denne statuskommando, giver den information om antallet af tilstedeværende servere, døde servere og serverens gennemsnitlige belastning. Her viser skærmbilledet information som 1 aktiv server, 1 død server og en gennemsnitlig belastning på 7.0000.

Version

Syntax: version

Versionsoutputtet er vist nedenfor:

HBase shell version-kommando, der viser den installerede HBase-version

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

Bordhjælp

Syntax:table_help

Outputtet fra table_help er vist nedenfor:

HBase shell table_help outputliste create og get_table kommandobrug

Denne kommando guider:

  • Hvad tabelrefererede kommandoer er, og hvordan man bruger dem.
  • Den vil give forskellige anvendelser af HBase-shell-kommandoer og deres syntakser.
  • Her, på skærmbilledet ovenfor, vises syntaksen for kommandoerne "create" og "get_table" med deres anvendelse. Vi kan manipulere tabellen via disse kommandoer, når tabellen er oprettet i HBase.
  • Den vil give tabelmanipulationskommandoer som put, get og alle andre kommandooplysninger.

whoami

Syntax: Whoami

Whoami-outputtet er vist nedenfor:

HBase shell whoami-kommando returnerer den aktuelle hduser og grupper

Denne kommando "whoami" bruges til at returnere de aktuelle HBase-brugeroplysninger fra HBase-klyngen. Den vil give oplysninger som:

  • Grupper til stede i HBase.
  • Brugeroplysningerne; for eksempel repræsenterer "hduser" i dette tilfælde 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 sletter automatisk rækker, når udløbstiden er nået. Denne attribut gælder for alle versioner af en række, selv den aktuelle version.

TTL-tiden, der er kodet i HBase for rækken, er angivet i UTC. Denne attribut bruges med tabelstyringskommandoer. Vigtige forskelle mellem TTL-håndtering og kolonnefamilie-TTL'er er nedenfor:

  • Celle TTL'er er udtrykt i enheder af millisekunder i stedet for sekunder.
  • En celle-TTL kan ikke forlænge en celles effektive levetid 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 Tabelstyringskommandoerne:

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

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

Opret

Syntax: create <tablename>, <columnfamilyname>

Eksempel:-

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

Resultatet af create-kommandoen vises nedenfor:

HBase shell create command bygger uddannelsestabellen med guru99 kolonnefamilien

Ovenstående eksempel forklarer, hvordan man opretter en tabel i HBase med det angivne navn i henhold til specifikationerne for hver kolonnefamilie. Derudover kan vi også overføre nogle table-scope-attributter til den. For at kontrollere, om tabellen 'uddannelse' er oprettet eller ej, bruger vi kommandoen "list" nedenfor. Se også oprettelse af HBase-tabeller med Java og skal.

Liste

Syntax:list

Listens output er vist nedenfor:

HBase shell list-kommando, der viser otte eksisterende tabeller i HBase

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

Beskriv

Syntax:describe <table name>
hbase(main):010:0>describe 'education'

Den beskrevne output er vist nedenfor:

HBase-shell beskriver kommandooutputtet med detaljerede beskrivelser af kolonnefamilierne i uddannelsestabellen

Denne kommando beskriver den navngivne tabel.

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

deaktivere

Syntax: disable <tablename>
hbase(main):011:0>disable 'education'

Deaktiveringsoutputtet er vist nedenfor:

HBase shell deaktiveringskommando tager uddannelsestabellen offline

  • Denne kommando vil begynde at deaktivere den navngivne tabel.
  • Hvis en tabel skal slettes eller fjernes, skal den først deaktiveres.

Her, i skærmbilledet ovenfor, deaktiverer vi tabeluddannelsen.

slå alt fra

 Syntax: disable_all<"matching regex"
  • Denne kommando vil deaktivere alle tabeller, der matcher det givne regex.
  • Implementeringen er den samme som drop-kommandoen (bortset fra at der tilføjes en regex til matchning).
  • Når tabellen er deaktiveret, kan brugeren slette tabellen fra HBase.
  • Før sletning eller fjernelseping en tabel, bør den først deaktiveres.

Aktiver

Syntax: enable <tablename>
hbase(main):012:0>enable 'education'

Aktiveringsudgangen er vist nedenfor:

HBase shell enable-kommando genaktiverer den deaktiverede uddannelsestabel

  • Denne kommando vil starte aktivering af den navngivne tabel.
  • Uanset hvilken tabel der er deaktiveret, bruger vi denne kommando for at gendanne den til sin tidligere tilstand.
  • Hvis en tabel er deaktiveret i første omgang og ikke slettes eller fjernes, og hvis vi vil genbruge den deaktiverede tabel, skal vi aktivere den ved hjælp af denne kommando.
  • Her, i skærmbilledet ovenfor, aktiverer vi tabellen "uddannelse".

vis_filtre

Syntax: show_filters

Outputtet fra show_filters vises nedenfor:

HBase-shell show_filters outputliste tilgængelig HBase-filtre

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

drop

Syntax:drop <table name>
hbase(main):017:0>drop 'education'

Dropoutputtet er vist nedenfor:

HBase shell drop-kommando sletter den deaktiverede uddannelsestabel

Vi skal være opmærksomme på følgende punkter for drop-kommandoen:

  • For at slette tabellen i HBase, skal vi først deaktivere den.
  • For at slette tabellen i HBase, skal vi først deaktivere den.
  • Så for enten at slette eller slette en tabel, skal tabellen først deaktiveres ved hjælp af kommandoen disable.
  • Her, i skærmbilledet ovenfor, slipper viping tabellen "uddannelse".
  • Før du udfører denne kommando, er det nødvendigt at deaktivere tabellen "uddannelse".

drop_all

Syntax: drop_all<"regex">
  • Denne kommando vil slette 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 vil blive fjernet fra HBase.

er_aktiveret

Syntax: is_enabled 'education'

Denne kommando vil verificere, om den navngivne tabel er aktiveret eller ej. Der er normalt lidt forvirring mellem kommandohandlingerne "enable" og "is_enabled", hvilket vi opklarer her:

  • Antag, at en tabel er deaktiveret; for at bruge tabellen skal vi aktivere den ved hjælp af kommandoen enable.
  • Kommandoen is_enabled kontrollerer, 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 alter-kommandohandlinger på tabeller og deres kolonner. Vi vil udføre handlinger som:

  • Ændring af familienavne i én og flere kolonner.
  • Sletning af kolonnefamilienavne fra en tabel.
  • Adskillige andre operationer, der bruger scope-attributter med en tabel.

For at ændre eller tilføje kolonnefamilien 'guru99_1' i tabellen 'education' fra den aktuelle værdi for at bevare maksimalt 5 celleVERSIONER. Her er "education" det tabelnavn, der tidligere blev oprettet med kolonnenavnet "guru99". Ved hjælp af en alter-kommando forsøger vi at ændre kolonnefamilieskemaet til guru99_1 fra guru99, som vist nedenfor:

HBase shell alter-kommando ændrer kolonnefamilien for uddannelsestabellen til guru99_1

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5

Du kan også bruge alter-kommandoen på flere kolonnefamilier. For eksempel definerer vi to nye kolonner til vores eksisterende tabel "uddannelse", som vist nedenfor:

HBase shell alter-kommando tilføjer to nye kolonnefamilier guru99_2 og guru99_3

 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
  • Vi kan ændre mere end ét kolonneskema ad gangen ved hjælp af denne kommando.
  • guru99_2 og guru99_3, som vist på skærmbilledet ovenfor, er de to nye kolonnenavne, som vi har defineret til tabellen.
  • Vi kan se, hvordan man bruger denne kommando, i det forrige skærmbillede.

I dette trin vil vi se, hvordan man sletter en kolonnefamilie fra tabellen. For at slette kolonnefamilien 'f1' i tabellen 'education' skal du bruge en af ​​disse kommandoer nedenfor. Resultatet vises på skærmbilledet nedenfor:

HBase shell alter-kommando sletter en kolonnefamilie fra uddannelsestabellen

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'

I denne kommando forsøger vi at slette kolonneområdet med navnet guru99_1, som vi tidligere oprettede i første trin. Som vist på skærmbillederne nedenfor, viser den to trin: hvordan man ændrer en tabelomfangsattribut, og hvordan man fjerner tabelomfangsattributten.

HBase shell alter-kommando indstiller MAX_FILESIZE table-scope-attributten

Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

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

Anvendelse:

  • Vi kan bruge MAX_FILESIZE med tabellen som en scope-attribut, som ovenfor.
  • Tallet repræsenteret i MAX_FILESIZE er udtrykt i hukommelse i bytes.

BEMÆRK: Tabelomfanget MAX_FILESIZE bestemmes af nogle attributter, der findes i HBase. MAX_FILESIZE hører også under tabelomfangsattributter.

Trin 2) Du kan også fjerne en table-scope-attribut ved hjælp af table_att_unset-metoden. Se kommandoen nedenfor:

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

alter_status

 Syntax: alter_status 'education'

Outputtet fra alter_status er vist nedenfor:

HBase shell alter_status-kommando viser en af ​​de opdaterede regioner

  • Gennem denne kommando kan du få status for alter-kommandoen.
  • Det angiver antallet af områder i tabellen, der har modtaget det opdaterede skema. Du angiver tabelnavnet.
  • Her, på skærmbilledet ovenfor, vises 1/1 region opdateret. Det betyder, at den har opdateret én region. Hvis det derefter lykkes, vises kommentaren "udført".

Datamanipulationskommandoer

Disse kommandoer fungerer på tabellen til datamanipulationer, såsom at indsætte data i en tabel, hente data fra en tabel og slette skemaer osv. Kommandoerne, der hører under disse, er:

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

Lad os se nærmere på disse kommandoanvendelser med et eksempel. Se også læsning og skrivning af HBase-data.

Tælle

Syntax: count <'tablename'>, CACHE =>1000
  • Kommandoen henter antallet af rækker i en tabel. Den værdi, der returneres af denne, er antallet af rækker.
  • Det aktuelle antal vises som standard for hver 1000 rækker.
  • Tælleintervallet kan valgfrit specificeres.
  • Standardcachestørrelsen er 10 rækker.
  • Kommandoen `count` fungerer hurtigt, når den er konfigureret med den rigtige cache.

Eksempel:

hbase> count 'guru99', CACHE=>1000

Tælleroutputtet er vist nedenfor:

HBase shell count-kommando returnerer rækkeantallet i guru99-tabellen

Dette eksempel på optælling henter 1000 rækker ad gangen fra tabellen "guru99". Vi kan lave en lavere cacheværdi, hvis tabellen består af flere rækker. Men som standard henter den én række ad gangen.

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

Antag at tabellen “guru99” har en tabelreference, som f.eks. g. Vi kan også køre count-kommandoen på tabelreferencen, som vist 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 en defineret eller specificeret tabel eller række eller kolonne.
  • Den vil eventuelt koordinere et tidsstempel.

Eksempel: Her placerer vi værdier i tabellen “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.

HBase-shell sætter kommandoen ind og indsætter værdierne 10, 15 og 30 i guru99-tabellen

Antag at tabellen “guru99” har en tabelreference, som f.eks. g. Vi kan også køre kommandoen på tabelreferencen, som f.eks.:

hbase> g.put 'guru99', 'r1', 'c1', 'value', 10

Outputtet vil være som vist på ovenstående skærmbillede efter at værdier er indsat i "guru99". For at kontrollere, om inputværdien er korrekt indsat i tabellen, bruger vi kommandoen "scan". På skærmbilledet nedenfor kan vi se, at værdierne er indsat korrekt.

HBase shell scan output bekræfter de værdier, der er indsat i guru99 tabellen

Code Uddrag: 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

Ud fra kodestykket gør vi disse ting:

  • Her opretter vi en tabel med navnet 'guru99' med kolonnenavnet "Edu".
  • Ved at bruge kommandoen "put" placerer vi værdier i rækkenavnet r1 i kolonnen "Edu" i tabellen "guru99".

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

Her, inkluderer TIMERANGE, TIMESTAMP, VERSIONS og FILTERS. Ved at bruge denne kommando får du vist indholdet af en række eller celle i tabellen. Derudover kan du også tilføje yderligere parametre, såsom TIMESTAMP, TIMERANGE, VERSIONS, FILTERS osv., for at få indholdet af en bestemt række eller celle.

Outputtet "get" nedenfor returnerer værdierne for række r1 og kolonne c1:

HBase shell get-kommando returnerer række r1 og kolonne c1 fra guru99-tabellen

Eksempler:-

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

For tabellen "guru99" vises værdierne for række r1 og kolonne c1 ved hjælp af denne kommando, som vist på skærmbilledet ovenfor.

hbase> get 'guru99', 'r1'

For tabellen “guru99” vises række r1-værdier ved hjælp af denne kommando.

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

For tabellen “guru99” vises række r1-værdier i tidsintervallet ts1 til ts2 ved hjælp af denne kommando.

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

For tabellen “guru99” vises værdierne for række r1 og kolonnefamilierne c1, c2 og c3 ved hjælp af denne kommando.

Slette

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Denne kommando sletter celleværdien i en defineret tabel med rækker eller kolonner.
  • Sletningen skal og bør stemme nøjagtigt overens med koordinaterne for den slettede celle.
  • Ved scanning undertrykker en slettecelle ældre versioner af værdier.

Eksempel: Sletningskommandoen nedenfor fjerner celle r1, c1 fra guru99-tabellen:

HBase shell delete-kommando fjerner celle r1 c1 fra guru99-tabellen

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

slet alt

Syntax: deleteall <'tablename'>, <'rowname'>
  • Denne kommando sletter alle celler i en given række.
  • Vi kan valgfrit definere kolonnenavne og et tidsstempel i syntaksen.

Eksempel: - Kommandoen deleteall nedenfor fjerner alle celler i række r1:

HBase shell deleteall-kommando fjerner alle celler i række r1 i guru99-tabellen

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

Dette vil slette alle rækker og kolonner i tabellen. Vi kan eventuelt nævne kolonnenavne i den.

afkort

Syntax:  truncate <tablename>

Truncate-kommandoen nedenfor tømmer tabellen, mens keeping dens skema:

HBase shell truncate-kommando deaktiverer, droppingog genskaber guru99-tabellen

Efter afkortningen af ​​en HBase-tabel vil skemaet være til stede, men ikke posterne. Denne kommando udfører 3 funktioner; disse er anført nedenfor:

  • Deaktiverer tabellen, hvis den allerede findes.
  • Sletter tabellen, hvis den allerede findes.
  • Genskaber den nævnte tabel.

Scan

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

Denne kommando scanner hele tabellen og viser tabellens indhold.

  • 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, TIDSTEMPEL, GRÆNSE, MAKSIMAL LÆNGDE, KOLONNER, CACHE, STARTRÆKKE og STOPRÆKKE.
scan 'guru99'

Scanningsoutputtet er vist nedenfor:

HBase shell scan-kommando, der viser rækkerne r1, r2 og r3 i guru99-tabellen

I ovenstående skærmbillede:

  • Den viser tabellen “guru99” med kolonnenavnet og værdierne.
  • Den består af tre rækkeværdier, r1, r2 og r3, for den enkelte kolonneværdi c1.
  • Den viser de værdier, der er knyttet til rækkerne.

Eksempler: - De forskellige anvendelser af scan-kommandoen:

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

Code Eksempel: Opret først en tabel og indsæt værdier i tabellen. Inputtet vises på skærmbilledet nedenfor:

HBase shell-input opretter guru99-tabellen og indsætter versionerede værdier før en rå scanning

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

Hvis vi kører scan-kommandoen:

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

Den vil vise outputtet vist nedenfor:

HBase shell rå scanningsoutput, der viser flere celleversioner inklusive en slettet værdi

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

  • Scanner guru99-tabellen med attributterne 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.
  • Det viste output er tilfældigt; det kan ikke være i samme rækkefølge som de værdier, vi indsatte i tabellen.

Cluster Replikeringskommandoer

  • Disse kommandoer fungerer i HBase' klyngeopsætningstilstand.
  • Disse kommandoer bruges generelt til at tilføje og fjerne peers til en klynge, og til at starte og stoppe replikering.
Kommando Funktionalitet
add_peer Tilføjer peers til en klynge, der skal replikeres.
hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod
remove_peer Stopper den definerede replikeringsstrøm og sletter alle metadataoplysninger om peer'en.
hbase> remove_peer '1'
start_replikering Genstarter alle replikeringsfunktionerne.
hbase> start_replikering
stop_replikering Stopper alle replikeringsfunktioner.
hbase>stop_replikering

Ofte Stillede Spørgsmål

Skriv exit eller quit, og tryk på Enter for at forlade den interaktive HBase-shell og vende tilbage til operativsystemprompten. Du åbner shell'en med hbase shell-kommandoen. Hverken exit eller quit stopper HBase-tjenesten; de afslutter kun shell-sessionen.

Ja. Send kommandoer i Pipe-format uden interaktive indstillinger, for eksempel echo “list” | hbase shell, eller kør en gemt fil med hbase shell script.txt. Da shell'en er JRuby-baseret, kan du også integrere Ruby-logik og -løkker i .rb scriptfiler.

Shell'en er en interaktiv JRuby-prompt til hurtige manuelle kommandoer og administration. Java API'en, der bruger Connection, Admin og Table, er til applikationer, der opretter tabeller og læser eller skriver data programmatisk. Begge når den samme HBase-klynge og data.

Fejlen "Tabel findes allerede" vises, når oprettelsen gentager et eksisterende navn, og "Tabel ikke deaktiveret" vises, når du sletter eller ændrer uden først at deaktivere. Kør disable 'table' før du sletter eller ændrer, og brug exists 'table' til at kontrollere et navn, før du opretter det.

En HBase-kolonnefamilie har et begrænset antal tidsstemplede versioner pr. celle, historisk set tre og én i nyere versioner. Indstil antallet med VERSIONS ved oprettelse eller ændring, og anmod om ældre versioner ved hjælp af {VERSIONS => n} på en get- eller scan-kommando.

En tabelreferencevariabel er et shell-objekt, der returneres af g = get_table 'guru99'. Du kalder derefter metoder på det, såsom g.put, g.get eller g.count, i stedet for at gentage tabelnavnet. Det er en praktisk genvej i JRuby-stil i HBase-shell'en.

AI-kodningsassistenter og store sprogmodeller genererer HBase-shellkommandoer fra anmodninger i letforståeligt sprog, forklarer ukendte muligheder såsom scanningsfiltre eller TTL og hjælper med at debugge fejl. Maskinlæring analyserer også klyngemålinger for at guide replikering og regionjustering, selvom en ingeniør bør verificere hver kommando.

Ja. GitHub Copilot foreslår HBase shell-kommandoer og JRuby-scripts fra en kort kommentar, inklusive eksempler på opret, put, scan og ændr. RevSe dens output for det korrekte tabelnavn, kolonnefamilier og syntaks, f.eks. VERSIONER, før den køres på en rigtig klynge.

Opsummer dette indlæg med: