HBase Shell-kommandon med exempel

Innehållsförteckning:

Anonim

Efter framgångsrik installation av HBase ovanpå Hadoop får vi ett interaktivt skal för att utföra olika kommandon och utföra flera operationer. Med hjälp av dessa kommandon kan vi utföra flera operationer på datatabeller som kan ge effektivare datalagringseffektivitet och flexibel interaktion av 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. Genom att använda Java API-modellen kan vi utföra alla typer av tabell- och datahantering i HBase. Vi kan interagera med HBase med båda dessa metoder.

Den enda skillnaden mellan dessa två är att Java API använder Java-kod för att ansluta till HBase och shell-läge använder shell-kommandon för att ansluta till HBase.

Snabb överkapacitet av HBase innan vi fortsätter-

  • HBase använder Hadoop-filer som lagringssystem för att lagra stora mängder data. Hbase består av Master Servers och Region Servers
  • Data som kommer att lagras i HBase kommer att vara i form av regioner. Vidare kommer dessa regioner att delas upp och lagras i flera regionservrar
  • Detta skalkommandon gör det möjligt för programmeraren att definiera tabellscheman och datahantering med hjälp av fullständig skallägesinteraktion
  • Oavsett vilket kommando vi använder kommer det att återspeglas i HBase-datamodellen
  • Vi använder HBase-skalkommandon i skriptolkar för operativsystem som Bash-skal
  • Bash shell är standardkommandotolkarna för de flesta av Linux- och Unix-driftdistributioner
  • HBase avancerade versioner ger skalkommandon i jruby-stil objektorienterade referenser för tabeller
  • Tabellreferensvariabler kan användas för att utföra datahantering i HBase-skalläge

För exempel ,

  • I denna handledning har vi skapat en tabell där 'utbildning' representerar tabellnamn och motsvarar kolumnnamnet "guru99".
  • I vissa kommandon representerar "guru99" i sig själv ett tabellnamn.

I den här handledningen lär du dig,

  • Allmänna kommandon
  • Kommandon för tabellhantering
  • Datamanipulationskommandon
  • Klusterreplikeringskommandon

Allmänna kommandon

I Hbase kategoriseras allmänna kommandon i följande kommandon

  • Status
  • Version
  • Table_help (skanna, släpp, få, sätta, inaktivera, etc.)
  • Vem är jag

För att komma in i HBase-kommandot måste vi först och främst köra koden som nämns nedan

hbase Shell

När vi väl har gått in i HBase-skal kan vi utföra alla skalkommandon som nämns nedan. Med hjälp av dessa kommandon kan vi utföra alla typer av tabellåtgärder i HBase-skalläget.

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 ett antal servrar som finns i klustret, antalet aktiva servern och genomsnittligt belastningsvärde. Du kan också skicka alla specifika parametrar beroende på hur detaljerad status du vill veta om systemet. Parametrarna kan vara "sammanfattning", "enkel" eller "detaljerad" , den angivna standardparametern är "sammanfattning".

Nedan har vi visat hur du kan skicka olika parametrar till statuskommandot.

Om vi ​​följer skärmbilden nedan får vi en bättre uppfattning.

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 utför denna kommandostatus kommer den att ge information om antalet servers nuvarande, döda servrar och genomsnittlig serverbelastning, här på skärmdumpen visar den informationen som - 1 live-server, 1 döda servrar och 7.0000 genomsnittlig belastning.

Version

Syntax: version

  • Detta kommando visar den för närvarande använda HBase-versionen i kommandoläge
  • Om du kör versionskommandot ger det utdata som visas ovan

Tabellhjälp

Syntax:table_help

Detta kommando guider

  • Vad och hur man använder tabellrefererade kommandon
  • Det kommer att ge olika HBase-skalkommandotillämpningar och dess syntaxer
  • Här i skärmbilden ovan visar det syntaxen för att " skapa" och " get_table" -kommandot med dess användning. Vi kan manipulera tabellen via dessa kommandon när tabellen skapas i HBase.
  • Det kommer att ge tabellmanipuleringar kommandon som put, get och all annan kommandoinformation.

vem är jag

Syntax:

Syntax: Whoami

Detta kommando "whoami" används för att returnera aktuell HBase-användarinformation från HBase-klustret.

Det kommer att ge information som

  • Grupper som finns i HBase
  • Användarinformationen, till exempel i detta fall "hduser" representerar användarnamnet som visas i skärmdumpen

TTL (Time To Live) - Attribut

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

TTL-tiden kodad i HBase för raden anges i UTC. Detta attribut som används med tabellhanteringskommandon.

Viktiga skillnader mellan TTL-hantering och kolumnerfamilj TTL är nedan

  • Cell-TTL: er uttrycks i enheter av millisekunder istället för sekunder.
  • En cell-TTL kan inte förlänga en cells effektiva livstid utöver en kolumnfamiljnivå TTL-inställning.

Kommandon för tabellhantering

Dessa kommandon gör det möjligt för programmerare att skapa tabeller och tabellscheman med rader och kolumnfamiljer.

Följande är tabellhanteringskommandon

  • Skapa
  • Lista
  • Beskriva
  • Inaktivera
  • Inaktivera alla
  • Gör det möjligt
  • Aktivera alla
  • Släppa
  • Drop_all
  • Visa_filter
  • Ändra
  • Alter_status

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

Skapa

Syntax: create 
, 

Exempel:-

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

Ovanstående exempel förklarar hur man skapar en tabell i HBase med det angivna namnet enligt ordboken eller specifikationerna enligt kolumnfamiljen. Utöver detta kan vi också skicka några tabellomfattande attribut till det.

För att kontrollera om tabellen 'utbildning' skapas eller inte måste vi använda kommandot "list" som nämns nedan.

Lista

Syntax:list

  • Kommandot "List" visar alla tabeller som finns eller skapas i HBase
  • Utgången som visas i ovanstående skärmdump visar för närvarande de befintliga tabellerna i HBase
  • Här i den här skärmdumpen visar det att det finns totalt 8 tabeller i HBase
  • Vi kan filtrera utdata från tabeller genom att skicka valfria parametrar för reguljära uttryck

Beskriva

Syntax:describe 

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

Detta kommando beskriver den namngivna tabellen.

  • Det kommer att ge mer information om kolumnfamiljer som finns i den nämnda tabellen
  • I vårt fall ger den beskrivningen om tabellen "utbildning".
  • Det kommer att ge information om tabellnamn med kolumnfamiljer, tillhörande filter, versioner och lite mer information.

inaktivera

Syntax: disable 

hbase(main):011:0>disable 'education'
  • Detta kommando börjar inaktivera den namngivna tabellen
  • Om tabellen måste tas bort eller tappas måste den inaktiveras först

Här, i skärmdumpen ovan, inaktiverar vi bordsutbildning

inaktivera alla

 Syntax: disable_all<"matching regex"
  • Detta kommando inaktiverar alla tabeller som matchar den angivna regexen.
  • Implementeringen är samma som delete-kommandot (Förutom att lägga till regex för matchning)
  • När tabellen har inaktiverats kan användaren ta bort tabellen från HBase
  • Innan du tar bort eller släpper tabellen bör den inaktiveras först

Gör det möjligt

Syntax: enable 

hbase(main):012:0>enable 'education'
  • Detta kommando börjar aktivera den namngivna tabellen
  • Oavsett vilken tabell som är inaktiverad, för att återgå till sitt tidigare tillstånd använder vi detta kommando
  • Om en tabell inaktiveras i första hand och inte raderas eller tappas, och om vi vill återanvända den inaktiverade tabellen måste vi aktivera den med det här kommandot.
  • Här i skärmdumpen ovan aktiverar vi tabellen "utbildning".

visa_filter

Syntax: show_filters

Detta kommando visar alla filter som finns i HBase som ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter, etc.

släppa

Syntax:drop 

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

Vi måste följa nedanstående punkter för släppkommando

  • För att ta bort tabellen i HBase måste vi först inaktivera den
  • För att släppa tabellen i HBase måste vi först inaktivera den
  • Så antingen tabellen för att släppa eller ta bort först borden inaktiveras med kommandot disable
  • Här i skärmdumpen ovan släpper vi tabellen "utbildning".
  • Innan du utför detta kommando är det nödvändigt att du inaktiverar tabellen "utbildning".

drop_all

Syntax: drop_all<"regex">
  • Detta kommando släpper alla tabeller som matchar den angivna regexen
  • Tabeller måste inaktiveras först innan det här kommandot körs med disable_all
  • Tabeller med regex-matchande uttryck kommer att släppas från HBase

är_aktiverad

Syntax: is_enabled 'education'

Detta kommando kommer att verifiera om den angivna tabellen är aktiverad eller inte. Vanligtvis finns det en liten förvirring mellan "aktivera" och "is_enabled" kommandoåtgärd, vilket vi rensar här

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

ändra

Syntax: alter 
, NAME=>, VERSIONS=>5

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

Exempel:

I dessa exempel kommer vi att utföra ändringskommandoperationer på tabeller och på dess kolumner. Vi kommer att utföra operationer som

  • Ändra enstaka, flera kolumnfamiljnamn
  • Ta bort kolumnfamiljnamn från tabellen
  • Flera andra operationer som använder scope-attribut med tabell
  1. För att ändra eller lägga till kolumnfamiljen 'guru99_1' i tabellen 'utbildning' från nuvarande värde för att behålla maximalt 5 VERSIONER ,
  • "utbildning" är tabellnamn skapat med kolumnnamn "guru99" tidigare
  • Här med hjälp av ett alter-kommando försöker vi ändra kolumnfamiljschemat till guru99_1 från guru99

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
  1. Du kan också använda kommandot alter på flera kolumnfamiljer. Till exempel kommer vi att definiera två nya kolumner till vår befintliga tabell "utbildning".
 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}

  • Vi kan ändra mer än en kolumn scheman åt gången med det här kommandot
  • guru99_2 och guru99_3 som visas i skärmdumpen ovan är de två nya kolumnnamnen som vi har definierat för tabellutbildningen
  • Vi kan se sättet att använda detta kommando i föregående skärmdump
  1. I det här steget kommer vi att se hur man tar bort kolumnfamilj från tabellen. Ta bort kolumnfamiljen 'f1' i tabellen 'utbildning'.

Använd en av dessa kommandon nedan,

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1' 
  • I det här kommandot försöker vi ta bort kolumnutrymmets namn guru99_1 som vi tidigare skapade i det första steget

  1. Som visas i skärmbilden nedan visar den två steg - hur man ändrar tabellomfattningsattribut och hur man tar bort tabellomfattningsattributet.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

Steg 1) Du kan ändra attribut för tabellomfång som MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, etc. Dessa kan sättas i slutet, till exempel för att ändra den maximala storleken på en region till 128 MB eller något annat minnesvärde som vi använder detta kommando.

Användande:

  • Vi kan använda MAX_FILESIZE med tabellen som omfångsattribut enligt ovan
  • Siffran som representeras i MAX_FILESIZE är i minnet i byte

N OTE: MAX_FILESIZE Attribut Tabell omfattning kommer att bestämmas av vissa attribut närvarande i HBase. MAX_FILESIZE kommer också under attribut för tabellomfång.

Steg 2) Du kan också ta bort ett attribut för tabellomfattning med metoden table_att_unset. Om du ser kommandot

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • Ovanstående skärmdump visar ändrat tabellnamn med omfångsattribut
  • Metodtabell_att_unset används för att avmarkera attribut som finns i tabellen
  • Den andra instansen avaktiverar vi attributet MAX_FILESIZE
  • Efter körning av kommandot avaktiverar det helt enkelt MAX_FILESIZE-attribut från "utbildning" -tabellen.

alter_status

 Syntax: alter_status 'education'

  • Genom detta kommando kan du få statusen för kommandot alter
  • Vilket indikerar antalet regioner i tabellen som har fått det uppdaterade schematpassbordets namn
  • Här i skärmdumpen ovan visar 1/1 regioner uppdaterade. Det betyder att den har uppdaterat en region. Efter det, om det lyckas kommer det att visas kommentar gjort.

Datamanipulationskommandon

Dessa kommandon kommer att fungera på tabellen relaterade till datamanipulationer som att lägga in data i en tabell, hämta data från en tabell och ta bort schema etc.

Kommandona under dessa är

  • Räkna
  • Sätta
  • Skaffa sig
  • Radera
  • Radera allt
  • Stympa
  • Skanna

Låt oss titta på dessa kommandos användning med ett exempel.

Räkna

Syntax: count <'tablename'>, CACHE =>1000
  • Kommandot hämtar antalet rader i en tabell. Värdet som returneras av detta är antalet rader.
  • Aktuellt antal visas per 1000 rader som standard.
  • Räkningsintervall kan valfritt anges.
  • Standardcache-storlek är 10 rader.
  • Count-kommandot fungerar snabbt när det är konfigurerat med rätt cache.

Exempel:

hbase> count 'guru99', CACHE=>1000

I det här exemplet räknar man 1000 rader åt gången från "Guru99" -tabellen.

Vi kan göra cache till något 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 => 100000hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000

Om antag om tabellen "Guru99" har någon tabellreferens som säg g.

Vi kan köra räkna kommandot på tabellreferensen också som nedan

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

Sätta

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

Detta kommando används för att följa saker

  • Det sätter ett cellvärde vid definierad eller specificerad tabell eller rad eller kolumn.
  • Det kommer valfritt att samordna 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ärmdumpen nedan

  • Antag att om tabellen "Guru99" har någon tabellreferens som säg g. Vi kan också köra kommandot på tabellreferens också som

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Utgången kommer att visas som visas i ovanstående skärmdump efter att ha placerat värden i "guru99".

För att kontrollera om ingångsvärdet är korrekt infört i tabellen använder vi kommandot "scan". I skärmbilden nedan kan vi se att värdena är korrekt införda

Kodavsnitt: för övning

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

Från kodavsnittet gör vi dessa saker

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

Skaffa sig

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

Här inkluderar TIMERANGE, TIMESTAMP, VERSIONS och FILTER.

Genom att använda detta kommando får du en rad eller ett cellinnehåll i tabellen. Utöver det kan du också lägga till ytterligare parametrar som TIMESTAMP, TIMERANGE, VERSIONS, FILTER etc. för att få en viss rad eller cellinnehåll.

Exempel: -

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

För tabell "guru99" visas rad r1 och kolumn c1-värden med detta kommando som visas i ovanstående skärmdump

hbase> get 'guru99', 'r1'

För tabellen "guru99" visas rad r1-värden med detta kommando

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

För tabell "guru99" visas rad 1-värden i tidsintervallet ts1 och ts2 med detta kommando

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

För tabell "guru99" rad r1 och kolumnfamiljer c1, c2, c3 värden visas med detta kommando

Radera

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Detta kommando raderar cellvärdet i den definierade tabellen för rad eller kolumn.
  • Radera måste och ska matcha de raderade cellkoordinaterna exakt.
  • Ta bort cellen när du skannar undertrycker äldre versioner av värden.

Exempel:

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''. 
  • Ovanstående körning raderar rad r1 från kolumnfamiljen c1 i tabellen "guru99."
  • Antag att om tabellen "guru99" har någon tabellreferens som säg g.
  • Vi kan köra kommandot på tabellreferens också som hbase> g.delete 'guru99', 'r1', 'c1' ".

radera allt

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

  • Detta kommando tar bort alla celler i en viss rad.
  • Vi kan definiera valfritt kolumnnamn och tidsstämpel till syntaxen.

Exempel:-

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

Detta raderar alla rader och kolumner som finns i tabellen. Valfritt kan vi nämna kolumnnamn i det.

Stympa

Syntax: truncate 

Efter avkortning av en hbase-tabell kommer schemat att visas men inte posterna. Detta kommando utför 3 funktioner; dessa listas nedan

  • Inaktiverar tabellen om den redan presenteras
  • Tappar tabellen om den redan presenterar
  • Återskapar nämnda tabell

Skanna

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

Detta kommando skannar hela tabellen och visar tabellinnehållet.

  • Vi kan skicka flera valfria specifikationer till det här skanningskommandot för att få mer information om tabellerna i systemet.
  • Skannerspecifikationer kan innehålla ett eller flera av följande attribut.
  • Dessa är TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW och STOPROW.
scan 'guru99' 

Utgången enligt nedan visas i skärmdump

I ovanstående skärmdump

  • Den visar "guru99" -tabellen med kolumnnamn och värden
  • Den består av tre radvärden r1, r2, r3 för ett kolumnvärde c1
  • Den visar värdena som är associerade med rader

Exempel: -

De olika användningsområdena för skanningskommandot

Kommando

Användande

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'}

Det visar innehållet i tabellen guru99 med sina kolumnfamiljer c1 och c2 som begränsar värdena till 10

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

Det visar innehållet i guru99 med kolumnnamn c1 med värdena mellan det nämnda tidsintervallattributvärdet

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

I det här kommandot ger RAW => true avancerad funktion som att visa alla cellvärden som finns i tabellen guru99

Kodexempel:

Skapa först tabell och placera värden 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

Ingångsskärmdump:

Om vi ​​kör scan-kommandot

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

Den visar utdata som visas nedan.

Output skärmdump:

Utgången som visas i ovanstående skärmdump ger följande information

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

Klusterreplikeringskommandon

  • Dessa kommandon fungerar på HBase-inställningsläge.
  • För att lägga till och ta bort kamrater till kluster och för att starta och stoppa replikering används dessa kommandon i allmänhet.

Kommando

Funktionalitet

add_peer

Lägg till kollegor i klustret för att replikera

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

remove_peer

Stoppar den definierade replikeringsströmmen.

Raderar all information om metadata om peer

hbase> remove_peer '1'

start_replikering

Startar om alla replikeringsfunktioner

hbase> startreplikering

stopp_replikation

Stoppar alla replikeringsfunktioner

hbase> stop_replication

Sammanfattning :

HBase-skal och allmänna kommandon ger fullständig information om olika typer av datahantering, tabellhantering och klusterreplikeringskommandon. Vi kan utföra olika funktioner med hjälp av dessa kommandon i tabeller som finns i HBase.