HBase Shell-kommandon med exempel

⚡ Smart sammanfattning

Med HBase-shellkommandon kan du hantera tabeller och data direkt från en interaktiv prompt, grupperade i allmänna kommandon, tabellhanteringskommandon som create och drop, datamanipulationskommandon som put och get, och klusterreplikeringskommandon.

  • 🖥️ Allmänna kommandon: status, version, table_help och whoami-rapport klusterstatus och användarinformation.
  • 🗂️ Tabellhantering: skapa, lista, beskriva, inaktivera, aktivera, ta bort och ändra, bygga och omforma tabeller.
  • ✏️ Datamanipulation: put, get, delete, deleteall, trunce, count och scanna läs- och skrivcellvärden.
  • 🔁 Cluster replikering: add_peer, remove_peer, start_replication och stop_replication hanterar datareplikering.
  • TTL-attribut: Time To Live löper ut automatiskt efter ett visst antal sekunder i kolumnfamiljen.
  • 🤖 AI-hjälp: AI-assistenter genererar och förklarar HBase-shellkommandon från tydliga prompter.

HBase-shellkommandon med exempel för tabeller, data och klusterreplikering

Hur man interagerar med HBase med hjälp av Shell-kommandon och Java API

Efter en lyckad installation av HBase ovanpå Hadoop får vi ett interaktivt skal för att köra olika kommandon och utföra flera operationer. Med hjälp av dessa kommandon kan vi utföra flera operationer på datatabeller vilket ger bättre datalagringseffektivitet och flexibel interaktion för klienten.

Vi kan interagera med HBase på två sätt:

  • HBase interaktivt skalläge, och
  • Genom Java API.

I HBase används interaktivt skalläge för att interagera med HBase för tabelloperationer, tabellhantering och datamodellering. Med hjälp av Java API-modellen kan vi utföra alla typer av tabell- och dataoperationer i HBase. Vi kan interagera med HBase med båda dessa metoder. Den enda skillnaden mellan de två är att Java API-användningar Java kod för att ansluta till HBase, medan shell-läge använder shell-kommandon för att ansluta till HBase.

Snabb sammanfattning av HBase innan vi fortsätter:

  • HBase använder Hadoop filer som ett lagringssystem för att lagra stora mängder data. HBase består av huvudservrar och regionservrar.
  • Data som kommer att lagras i HBase kommer att vara i form av regioner. Vidare kommer dessa regioner att delas upp och lagras på flera regionservrar.
  • Dessa shell-kommandon låter programmeraren definiera tabellscheman och dataoperationer med hjälp av fullständig interaktion i shell-läge.
  • Oavsett vilket kommando vi använder kommer det att återspeglas i HBase-datamodellen.
  • Vi använder HBase-shellkommandon i operativsystemsskripttolkar som Bash-shellet.
  • Bash-skalet är standardkommandotolken för de flesta Linux och Unix-operativsystemdistributioner.
  • HBase avancerade versioner tillhandahåller shell-kommandon med objektorienterade referenser i JRuby-stil för tabeller.
  • Tabellreferensvariabler kan användas för att utföra dataoperationer i HBase-shellläge.

Till exempel:

  • I den här handledningen har vi skapat en tabell där 'utbildning' representerar tabellnamnet och motsvarar kolumnnamnet "guru99".
  • I vissa kommandon representerar "guru99" i sig ett tabellnamn.

Allmänna kommandon

I HBase kategoriseras allmänna kommandon i följande kommandon:

  • Status
  • Version
  • Table_help (skanna, släpp, hämta, lägg, inaktivera, etc.)
  • Vem är jag

För att använda HBase-shellkommandot måste vi först köra koden som nämns nedan.

hbase Shell

När vi väl har gått in i HBase-skalet kan vi köra alla skalkommandon som nämns nedan. Med hjälp av dessa kommandon kan vi utföra alla typer av tabelloperationer i HBase-skalläget. Den interaktiva skalprompten visas enligt nedan:

HBase interaktiv skalprompt öppnad med hbase-shellkommandot

Låt oss titta på alla dessa kommandon och deras användning en efter en med ett exempel.

Status

Syntax:status

Det här kommandot ger information om systemstatus, som antalet servrar i klustret, antalet aktiva servrar och det genomsnittliga belastningsvärdet. Du kan också ange specifika parametrar beroende på hur detaljerad status du vill veta om systemet. Parametrarna kan vara "sammanfattning", "enkel" eller "detaljerad"; standardparametern som anges är "sammanfattning".

Nedan har vi visat hur du kan skicka olika parametrar till statuskommandot. Om vi ​​tittar på skärmdumpen nedan får vi en bättre uppfattning.

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

Statusutgången visas nedan:

HBase shell statuskommando utdata som visar aktiva servrar, döda servrar och genomsnittlig belastning

När vi kör detta statuskommando ger det information om antalet servrar som finns, döda servrar och serverns genomsnittliga belastning. Här visar skärmdumpen information som 1 aktiv server, 1 död server och en genomsnittlig belastning på 7.0000.

Version

Syntax: version

Versionsutdata visas nedan:

HBase shell version-kommando som visar den installerade HBase-versionen

  • Det här kommandot visar den HBase-version som för närvarande används i kommandoläge.
  • Om du kör versionskommandot kommer det att ge utdata som visas ovan.

Bordshjälp

Syntax:table_help

Utdata från table_help visas nedan:

HBase-shell table_help utdatalista create och get_table kommandoanvändning

Detta kommando vägleder:

  • Vad tabellrefererade kommandon är och hur man använder dem.
  • Den kommer att tillhandahålla olika användningsområden för HBase-shellkommandon och deras syntaxer.
  • Här, i skärmbilden ovan, visas syntaxen för kommandona "create" och "get_table" och deras användning. Vi kan manipulera tabellen via dessa kommandon när tabellen har skapats i HBase.
  • Den kommer att ge kommandon för tabellmanipulation som put, get och all annan kommandoinformation.

whoami

Syntax: Whoami

Whoami-utdata visas nedan:

HBase shell whoami-kommandot returnerar aktuell hduser och grupper

Kommandot "whoami" används för att returnera aktuell HBase-användarinformation från HBase-klustret. Det kommer att tillhandahålla information som:

  • Grupper som finns i HBase.
  • Användarinformationen; till exempel, i det här fallet representerar ”hduser” användarnamnet som visas på skärmbilden.

TTL (Time To Live) – Attribut

I HBase kan kolumnfamiljer ställas in på tidsvärden i sekunder med hjälp av TTL. HBase tar automatiskt bort rader när utgångstiden har uppnåtts. Detta attribut gäller alla versioner av en rad, även den aktuella versionen.

TTL-tiden som är kodad i HBase för raden anges i UTC. Detta attribut används med tabellhanteringskommandon. Viktiga skillnader mellan TTL-hantering och TTL:er i kolumnfamiljen är nedan:

  • Cell-TTL uttrycks i enheter av millisekunder istället för sekunder.
  • En cell-TTL kan inte förlänga den effektiva livslängden för en cell utöver en TTL-inställning på kolumnfamiljenivå.

Tabeller Hanteringskommandon

Dessa kommandon gör det möjligt för programmerare att skapa tabeller och tabellscheman med rad- och kolumnfamiljer. Följande är kommandona för tabellhantering:

  • Skapa
  • Lista
  • Beskriv
  • inaktivera
  • Inaktivera alla
  • Möjliggöra
  • Aktivera alla
  • Drop
  • Släpp_allt
  • Visa_filter
  • Ålder
  • Alter_status

Låt oss titta på olika kommandoanvändningar i HBase med ett exempel.

Skapa

Syntax: create <tablename>, <columnfamilyname>

Exempel:-

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

Resultatet av create-kommandot visas nedan:

HBase Shell Create-kommandot bygger utbildningstabellen med kolumnfamiljen guru99

Exemplet ovan förklarar hur man skapar en tabell i HBase med det angivna namnet enligt specifikationerna för varje kolumnfamilj. Utöver detta kan vi också skicka in vissa attribut för tabellomfånget. För att kontrollera om tabellen 'utbildning' skapas eller inte använder vi kommandot "list" nedan. Se även skapa HBase-tabeller med Java och skal.

Lista

Syntax:list

Listutdata visas nedan:

HBase shell list-kommando som visar åtta befintliga tabeller i HBase

  • Kommandot "list" visar alla tabeller som finns eller har skapats i HBase.
  • Utdata som visas i skärmbilden ovan visar för närvarande de befintliga tabellerna i HBase.
  • Här, på den här skärmdumpen, visas att det finns totalt 8 tabeller i HBase.
  • Vi kan filtrera utdatavärden från tabeller genom att skicka valfria reguljära uttrycksparametrar.

Beskriv

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

Beskrivningsutgången visas nedan:

HBase-shell beskriver kommandoutdata med detaljerad information om kolumnfamiljerna för utbildningstabellen

Detta kommando beskriver den namngivna tabellen.

  • Den ger mer information om kolumnfamiljerna som finns i den nämnda tabellen.
  • I vårt fall ger den beskrivningen av tabellen ”utbildning”.
  • Den ger information om tabellnamnet med kolumnfamiljer, tillhörande filter, versioner och lite mer information.

inaktivera

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

Inaktiveringsutgången visas nedan:

HBase shell inaktiveringskommando tar utbildningstabellen offline

  • Det här kommandot börjar inaktivera den namngivna tabellen.
  • Om en tabell behöver tas bort eller tas bort måste den först inaktiveras.

Här, i skärmdumpen ovan, inaktiverar vi tabellutbildningen.

inaktivera alla

 Syntax: disable_all<"matching regex"
  • Detta kommando kommer att inaktivera alla tabeller som matchar det givna regexet.
  • Implementeringen är densamma som drop-kommandot (förutom att man lägger till en regex för matchning).
  • När tabellen har inaktiverats kan användaren ta bort tabellen från HBase.
  • Innan du tar bort eller släpperping en tabell, bör den inaktiveras först.

Möjliggöra

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

Aktiveringsutgången visas nedan:

HBase shell enable-kommandot återaktiverar den inaktiverade utbildningstabellen

  • Det här kommandot börjar aktivera den namngivna tabellen.
  • Oavsett vilken tabell som är inaktiverad använder vi det här kommandot för att återställa den till sitt tidigare tillstånd.
  • Om en tabell inaktiveras från första början och inte raderas eller tas bort, och om vi vill återanvända den inaktiverade tabellen, måste vi aktivera den med hjälp av det här kommandot.
  • Här, i skärmdumpen ovan, aktiverar vi tabellen "utbildning".

visa_filter

Syntax: show_filters

Utdata för show_filters visas nedan:

HBase-skal show_filters utdatalista tillgängliga HBase-filter

Det här kommandot visar alla filter som finns i HBase, som ColumnPrefixFilter, TimestampsFilter, PageFilter, FamilyFilter, etc.

släppa

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

Dropputgången visas nedan:

HBase shell drop-kommando tar bort den inaktiverade utbildningstabellen

Vi måste observera följande punkter för drop-kommandot:

  • För att ta bort tabellen som finns i HBase måste vi först inaktivera den.
  • För att ta bort tabellen som finns i HBase måste vi först inaktivera den.
  • Så, för att antingen ta bort eller ta bort en tabell, bör tabellen först inaktiveras med kommandot disable.
  • Här, i skärmdumpen ovan, släpper viping tabellen ”utbildning”.
  • Innan du kör detta kommando är det nödvändigt att du inaktiverar tabellen "utbildning".

drop_all

Syntax: drop_all<"regex">
  • Det här kommandot tar bort alla tabeller som matchar den givna regexen.
  • Tabeller måste först inaktiveras innan det här kommandot körs med hjälp av disable_all.
  • Tabeller med regex-matchande uttryck kommer att tas bort från HBase.

is_enabled

Syntax: is_enabled 'education'

Det här kommandot verifierar om den namngivna tabellen är aktiverad eller inte. Vanligtvis finns det en liten förvirring mellan kommandoåtgärderna "enable" och "is_enabled", vilket vi förtydligar här:

  • Anta att en tabell är inaktiverad; för att använda tabellen måste vi aktivera den med hjälp av kommandot enable.
  • Kommandot is_enabled kontrollerar om tabellen är aktiverad eller inte.

ändra

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

Detta kommando ändrar kolumnfamiljens schema. För att förstå exakt vad det gör har vi förklarat det här med ett exempel.

Exempel: I dessa exempel ska vi utföra alter-kommandooperationer på tabeller och deras kolumner. Vi kommer att utföra operationer som:

  • Ändra familjenamn för en och flera kolumner.
  • Ta bort kolumnfamiljenamn från en tabell.
  • Flera andra operationer som använder scopeattribut med en tabell.

För att ändra eller lägga till kolumnfamiljen 'guru99_1' i tabellen 'education' från det aktuella värdet för att behålla maximalt 5 cellversioner. Här är "education" tabellnamnet som tidigare skapades med kolumnnamnet "guru99". Med hjälp av ett alter-kommando försöker vi ändra kolumnfamiljens schema till guru99_1 från guru99, som visas nedan:

HBase shell alter-kommandot ändrar kolumnfamiljen för utbildningstabellen till guru99_1

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

Du kan också använda alter-kommandot på flera kolumnfamiljer. Till exempel definierar vi två nya kolumner för vår befintliga tabell "utbildning", som visas nedan:

HBase shell alter-kommando lägger till två nya kolumnfamiljer guru99_2 och guru99_3

 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
  • Vi kan ändra mer än ett kolumnschema åt gången med hjälp av det här kommandot.
  • guru99_2 och guru99_3, som visas på skärmdumpen ovan, är de två nya kolumnnamnen som vi har definierat för tabellutbildningen.
  • Vi kan se hur man använder det här kommandot i föregående skärmdump.

I det här steget ska vi se hur man tar bort en kolumnfamilj från tabellen. För att ta bort kolumnfamiljen 'f1' i tabellen 'utbildning', använd ett av kommandona nedan. Resultatet visas på skärmdumpen som följer:

HBase shell alter-kommando tar bort en kolumnfamilj från utbildningstabellen

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

I det här kommandot försöker vi ta bort kolumnutrymmet med namnet guru99_1 som vi tidigare skapade i det första steget. Som visas i skärmdumparna nedan visas två steg: hur man ändrar ett attribut för tabellomfång och hur man tar bort attributet för tabellomfång.

HBase shell alter-kommandot ställer in MAX_FILESIZE table-scope-attributet

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

Steg 1) Du kan ändra attribut för tabellomfånget som MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, etc. Dessa kan läggas till i slutet; till exempel, för att ändra maxstorleken för en region till 128 MB eller något annat minnesvärde, använder vi det här kommandot.

Användning:

  • Vi kan använda MAX_FILESIZE med tabellen som ett scope-attribut, som ovan.
  • Talet som representeras i MAX_FILESIZE anges i minne i byte.

OBS! Tabellens omfattning MAX_FILESIZE bestäms av vissa attribut som finns i HBase. MAX_FILESIZE ingår också i tabellens omfattningsattribut.

Steg 2) Du kan också ta bort ett table-scope-attribut med hjälp av metoden table_att_unset. Se kommandot nedan:

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • Skärmdumpen ovan visar det ändrade tabellnamnet med scope-attribut.
  • Metoden table_att_unset används för att avaktivera attribut som finns i tabellen.
  • I andra fallet avaktiverar vi attributet MAX_FILESIZE.
  • Efter att kommandot har körts kommer det helt enkelt att avaktivera MAX_FILESIZE-attributet från tabellen "utbildning".

alter_status

 Syntax: alter_status 'education'

Utdata för alter_status visas nedan:

HBase-shell alter_status-kommandot visar en av en uppdaterad region

  • Genom det här kommandot kan du få statusen för alter-kommandot.
  • Den anger antalet regioner i tabellen som har fått det uppdaterade schemat. Du anger tabellnamnet.
  • Här, i skärmbilden ovan, visas 1/1 region uppdaterad. Det betyder att den har uppdaterat en region. Om det sedan lyckas visas kommentaren "klar".

Datamanipuleringskommandon

Dessa kommandon fungerar på tabellen för datamanipulationer, som att lägga in data i en tabell, hämta data från en tabell och ta bort scheman etc. Kommandona som ingår i dessa är:

  • Att Räkna
  • Sätta
  • Skaffa sig
  • Radera
  • Radera allt
  • Stympa
  • scan

Låt oss titta närmare på dessa kommandoanvändningar med ett exempel. Se även läsa och skriva HBase-data.

Att Räkna

Syntax: count <'tablename'>, CACHE =>1000
  • Kommandot hämtar antalet rader i en tabell. Värdet som returneras av detta är antalet rader.
  • Det aktuella antalet visas som standard per 1000 rader.
  • Räkneintervallet kan valfritt anges.
  • Standardcachestorleken är 10 rader.
  • Kommandot count fungerar snabbt när det är konfigurerat med rätt cache.

Exempel:

hbase> count 'guru99', CACHE=>1000

Räkneutdata visas nedan:

HBase shell count-kommandot returnerar radantalet för guru99-tabellen

Detta exempel på antal hämtar 1000 rader åt gången från tabellen "guru99". Vi kan göra cachen till ett lägre värde om tabellen består av fler rader. Men som standard hämtar den en rad i taget.

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

Anta att tabellen "guru99" har någon tabellreferens, som till exempel g. Vi kan också köra count-kommandot på tabellreferensen, som nedan:

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

Sätta

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

Det här kommandot används för följande saker:

  • Det kommer att placera ett cell "värde" vid en definierad eller specificerad tabell eller rad eller kolumn.
  • Den kommer valfritt att koordinera en tidsstämpel.

Exempel: Här placerar vi värden i tabellen "guru99" under rad r1 och kolumn c1.

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

Vi har placerat tre värden, 10, 15 och 30, i tabellen "guru99", som visas på skärmbilden nedan.

HBase-shell sätter in kommandot och infogar värdena 10, 15 och 30 i guru99-tabellen

Anta att tabellen "guru99" har någon tabellreferens, som till exempel g. Vi kan också köra kommandot på tabellreferensen, som:

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

Utdata kommer att se ut som visas på skärmbilden ovan efter att värden har placerats i "guru99". För att kontrollera om inmatningsvärdet är korrekt infogat i tabellen använder vi kommandot "scan". På skärmbilden nedan kan vi se att värdena är korrekt infogade.

HBase-skalskanningsutdata bekräftar värdena som infogas i guru99-tabellen

Code Utdrag: För övning

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

Från kodavsnittet gör vi följande:

  • Här skapar vi en tabell med namnet 'guru99' med kolumnnamnet "Edu".
  • Genom att använda kommandot ”put” placerar vi värden i radnamnet r1 i kolumnen ”Edu” i tabellen ”guru99”.

Skaffa sig

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

Här, inkludera TIMERANGE, TIMESTAMP, VERSIONS och FILTERS. Genom att använda det här kommandot får du fram innehållet i en rad eller cell i tabellen. Utöver det kan du också lägga till ytterligare parametrar, som TIMESTAMP, TIMERANGE, VERSIONS, FILTERS etc., för att få fram innehållet i en specifik rad eller cell.

Get-utdata nedan returnerar värden för rad r1 och kolumn c1:

HBase-shellkommandot get returnerar rad r1 och kolumn c1 från guru99-tabellen

Exempel:-

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

För tabellen "guru99" visas värden för rad r1 och kolumn c1 med det här kommandot, som visas på skärmdumpen ovan.

hbase> get 'guru99', 'r1'

För tabellen “guru99” kommer rad r1-värden att visas med detta kommando.

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

För tabellen “guru99” kommer rad r1-värden i tidsintervallet ts1 till ts2 att visas med detta kommando.

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

För tabellen "guru99" visas värden för rad r1 och kolumnfamiljerna c1, c2 och c3 med detta kommando.

Radera

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Det här kommandot tar bort cellvärdet i en definierad tabell med rad eller kolumn.
  • Delete måste och bör matcha den borttagna cellens koordinater exakt.
  • Vid skanning undertrycker en borttagningscell äldre versioner av värden.

Exempel: Kommandot delete nedan tar bort cell r1, c1 från guru99-tabellen:

HBase shell delete-kommando tar bort cell r1 c1 från guru99-tabellen

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
  • Ovanstående körning kommer att ta bort rad r1 från kolumnfamiljen c1 i tabellen "guru99".
  • Anta att tabellen "guru99" har någon tabellreferens, som till exempel g.
  • Vi kan också köra kommandot på tabellreferensen, som hbase> g.delete 'guru99', 'r1', 'c1′”.

radera allt

Syntax: deleteall <'tablename'>, <'rowname'>
  • Det här kommandot tar bort alla celler i en given rad.
  • Vi kan valfritt definiera kolumnnamn och en tidsstämpel i syntaxen.

Exempel: Kommandot deleteall nedan tar bort alla celler i rad r1:

HBase-shell deleteall-kommandot tar bort alla celler i rad r1 i guru99-tabellen

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

Detta tar bort alla rader och kolumner som finns i tabellen. Vi kan eventuellt ange kolumnnamn i den.

Stympa

Syntax:  truncate <tablename>

Truncate-kommandot nedan tömmer tabellen medan keeping dess schema:

HBase-shell truncate-kommandot inaktiverar, släpperpingoch återskapa guru99-tabellen

Efter avkortningen av en HBase-tabell kommer schemat att finnas kvar men inte posterna. Detta kommando utför tre funktioner; de listas nedan:

  • Inaktiverar tabellen om den redan finns.
  • Tar bort tabellen om den redan finns.
  • Återskapar den nämnda tabellen.

scan

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

Det här kommandot skannar hela tabellen och visar tabellinnehållet.

  • Vi kan skicka flera valfria specifikationer till detta skanningskommando för att få mer information om tabellerna som finns i systemet.
  • Skannerspecifikationerna kan innehålla ett eller flera av följande attribut.
  • Dessa är TIMERRANGE, FILTER, TIDSTÄMPEL, GRÄNS, MAXLENGTH, KOLUMNER, CACHE, STARTRAD och STOPROW.
scan 'guru99'

Skanningsutdata visas nedan:

HBase shell scan-kommando som visar raderna r1, r2 och r3 i guru99-tabellen

I skärmdumpen ovan:

  • Den visar tabellen "guru99" med kolumnnamn och värden.
  • Den består av tre radvärden, r1, r2 och r3, för det enskilda kolumnvärdet c1.
  • Den visar de värden som är associerade med raderna.

Exempel:- Olika användningsområden för scan-kommandot:

Kommando Användning
skanna '.META.', {COLUMNS => 'info:regioninfo'} Den visar all metadatainformation relaterad till kolumner som finns i tabellerna i HBase.
skanna 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} Den visar innehållet i tabellen guru99 med deras kolumnfamiljer c1 och c2, med begränsning av värdena till 10.
skanna 'guru99', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]} Den visar innehållet i guru99 med dess kolumnnamn c1 med värdena som finns mellan det nämnda tidsintervallattributvärdet.
skanna 'guru99', {RAW => true, VERSIONS =>10} I det här kommandot erbjuder RAW=> true en avancerad funktion, som att visa alla cellvärden som finns i tabellen guru99.

Code Exempel: Skapa först en tabell och placera värden i tabellen. Indata visas på skärmbilden nedan:

HBase-shell-inmatning skapar guru99-tabellen och infogar versionsvärden före en råskanning

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

Om vi ​​kör scan-kommandot:

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

Den visar utdata som visas nedan:

HBase-skalets råa skanningsutdata som visar flera cellversioner inklusive ett borttaget värde

Utdata som visas i skärmdumpen ovan ger följande information:

  • Skannar guru99-tabellen med attributen RAW=>true, VERSIONS=>1000.
  • Visar rader med kolumnfamiljer och värden.
  • På den tredje raden visar de visade värdena det borttagna värdet som finns i kolumnen.
  • Utdata som visas är slumpmässig; den kan inte vara i samma ordning som de värden som vi infogade i tabellen.

Cluster Replikeringskommandon

  • Dessa kommandon fungerar i klusterkonfigurationsläget för HBase.
  • För att lägga till och ta bort peers till ett kluster, och för att starta och stoppa replikering, används dessa kommandon i allmänhet.
Kommando Funktionalitet
add_peer Lägger till peer-kollegor i ett kluster som ska replikeras.
hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod
remove_peer Stoppar den definierade replikeringsströmmen och tar bort all metadatainformation om motparten.
hbase> remove_peer '1'
start_replikering Startar om alla replikeringsfunktioner.
hbase> start_replikering
stop_replikering Stoppar alla replikeringsfunktioner.
hbase>stopp_replikering

Vanliga frågor

Skriv exit eller quit och tryck på Enter för att lämna det interaktiva HBase-skalet och återgå till operativsystemets prompt. Du öppnar skalet med hbase shell-kommandot. Varken exit eller quit stoppar HBase-tjänsten; de avslutar bara skalsessionen.

Ja. Kör kommandon utan att interaktivt skickas, till exempel echo “list” | hbase shell, eller kör en sparad fil med hbase shell script.txt. Eftersom skalet är JRuby-baserat kan du även bädda in Ruby-logik och loopar i .rb-skriptfiler.

Skalet är en interaktiv JRuby-prompt för snabba manuella kommandon och administration. Java API:et, som använder Connection, Admin och Table, är avsett för applikationer som skapar tabeller och läser eller skriver data programmatiskt. Båda når samma HBase-kluster och data.

Felmeddelandet ”Tabellen finns redan” visas när man skapar ett befintligt namn, och ”Tabellen är inte inaktiverad” visas när man tar bort eller ändrar utan att först inaktivera. Kör inaktivera 'tabell' innan du tar bort eller ändrar, och använd 'tabellen finns' för att kontrollera ett namn innan du skapar det.

En HBase-kolumnfamilj har ett begränsat antal tidsstämplade versioner per cell, historiskt sett tre och en i nyare versioner. Ställ in antalet med VERSIONS vid skapande eller ändringstillfället och begär äldre versioner med hjälp av {VERSIONS => n} på ett get- eller scan-kommando.

En tabellreferensvariabel är ett skalobjekt som returneras av g = get_table 'guru99'. Du anropar sedan metoder på det, såsom g.put, g.get eller g.count, istället för att upprepa tabellnamnet. Det är en bekväm genväg i JRuby-stil i HBase-skalet.

AI-kodningsassistenter och stora språkmodeller genererar HBase-shellkommandon från förfrågningar i enkelt språk, förklarar okända alternativ som skanningsfilter eller TTL och hjälper till att felsöka fel. Maskininlärning analyserar också klusterstatistik för att vägleda replikering och regionjustering, även om en ingenjör bör verifiera varje kommando.

Ja. GitHub Copilot föreslår HBase-shellkommandon och JRuby-skript från en kort kommentar, inklusive exempel på create, put, scan och alter. RevVisa dess utdata för korrekt tabellnamn, kolumnfamiljer och syntax som VERSIONS innan du kör den på ett riktigt kluster.

Sammanfatta detta inlägg med: