HBase Shelli käsud koos näidetega
Pärast HBase'i edukat installimist Hadoopi peale saame interaktiivse kesta erinevate käskude täitmiseks ja mitme toimingu tegemiseks. Neid käske kasutades saame andmetabelitega teha mitmeid toiminguid, mis võivad anda parema andmesalvestuse tõhususe ja kliendi paindliku suhtluse.
Me saame HBase'iga suhelda kahel viisil,
- HBase interaktiivne kestarežiim ja
- Läbi Java API
HBase'is kasutatakse interaktiivset kestarežiimi HBase'iga suhtlemiseks tabelitoimingute, tabelihalduse ja andmete modelleerimise jaoks. Kasutades Java API mudel, saame HBase'is teha igat tüüpi tabeli- ja andmetoiminguid. Seda mõlemat meetodit kasutades saame HBase'iga suhelda.
Ainus erinevus nende kahe vahel on Java API kasutab HBase'iga ühenduse loomiseks java koodi ja shellrežiim kasutab HBase'iga ühenduse loomiseks shellikäske.
HBase'i kiire ülekate, enne kui jätkame -
- HBase kasutab hadoop faile salvestussüsteemina suurte andmemahtude salvestamiseks. Hbase koosneb peaserveritest ja piirkondade serveritest
- Andmed, mida HBase'is salvestatakse, on piirkondade kujul. Lisaks jagatakse need piirkonnad osadeks ja salvestatakse mitmesse piirkonna serverisse
- Need shellikäsud võimaldavad programmeerijal määratleda tabeliskeeme ja andmeoperatsioone, kasutades täielikku kestarežiimi interaktsiooni
- Ükskõik millist käsku me kasutame, kajastub see HBase'i andmemudelis
- Kasutame HBase'i shellikäske operatsioonisüsteemi skriptitõlkides nagu Bash shell
- Bash shell on enamiku jaoks vaikimisi käsutõlgid Linux ja Unix tegutsevad distributsioonid
- HBase'i täiustatud versioonid pakuvad tabelite jaoks shellikäske jruby-stiilis objektorienteeritud viiteid
- Tabeli viitemuutujaid saab kasutada andmetoimingute tegemiseks HBase'i kestarežiimis
Näideteks,
- Selles õpetuses oleme loonud tabeli, milles "haridus" tähistab tabeli nime ja vastab veeru nimele "guru99".
- Mõnes käsus tähistab “guru99” ise tabeli nime.
Üldised käsud
Hbase'is on üldised käsud jagatud järgmisteks käskudeks
- olek
- versioon
- Table_help (skanni, kukuta, hanki, pane, keela jne)
- Kes ma olen
HBase'i shellikäsu sisenemiseks peame kõigepealt käivitama koodi, nagu allpool mainitud
hbase Shell
Kui jõuame HBase'i kesta, saame täita kõik allpool mainitud shellikäsud. Nende käskude abil saame HBase shellirežiimis sooritada igat tüüpi tabelioperatsioone.
Vaatame kõiki neid käske ja nende kasutamist näite abil ükshaaval.
olek
Syntax:status
See käsk annab üksikasju süsteemi oleku kohta, näiteks klastris olevate serverite arvu, aktiivsete serverite arvu ja keskmise koormuse väärtuse. Sõltuvalt sellest, kui üksikasjalikku olekut soovite süsteemi kohta teada, saate edastada ka mis tahes konkreetseid parameetreid. Parameetrid võivad olla 'kokkuvõte', 'lihtne' või 'detailne', on vaikeparameeter "kokkuvõte".
Allpool oleme näidanud, kuidas saate olekukäsule edastada erinevaid parameetreid.
Kui jälgime allolevat ekraanipilti, saame parema ettekujutuse.
hbase(main):001:0>status hbase(main):002:0>status 'simple' hbase(main):003:0>status 'summary' hbase(main):004:0> status 'detailed'
Selle käsu oleku täitmisel annab see teavet olemasoleva serveri arvu, surnud serverite ja serveri keskmise koormuse kohta, siin kuvatõmmis näitab sellist teavet nagu 1 reaalajas server, 1 surnud server ja 7.0000 keskmine koormus.
versioon
Syntax: version
- See käsk kuvab praegu kasutatava HBase'i versiooni käsurežiimis
- Kui käivitate versioonikäsu, annab see väljundi, nagu ülal näidatud
Tabeli abi
Syntax:table_help
See käsk juhendab
- Mida ja kuidas kasutada tabelitele viidatud käske
- See pakub erinevaid HBase'i kestakäskude kasutusviise ja selle süntaksi
- Siin ülaloleval ekraanipildil näitab see süntaksitluua" ja "hanki_laud” käsk selle kasutamisega. Kui tabel HBase'is luuakse, saame nende käskude abil tabelit manipuleerida.
- See annab tabeliga manipuleerimise käske, nagu näiteks put, get ja kogu muu käskude teave.
Whoami
süntaksit:
Syntax: Whoami
Seda käsku "whoami" kasutatakse HBase'i klastri praeguse HBase'i kasutajateabe tagastamiseks.
See annab teavet nagu
- HBase'is olevad rühmad
- Kasutajateave, näiteks antud juhul “hduser”, esindab kasutajanime, nagu on näidatud ekraanipildil
TTL (Elamise aeg) – atribuut
HBase'is saab veeruperekondadele määrata ajaväärtused sekundites, kasutades TTL-i. HBase kustutab read automaatselt, kui aegumisaeg on täis. See atribuut kehtib rea kõikide versioonide kohta – ka praeguse versiooni kohta.
Rea HBase'is kodeeritud TTL-aeg on määratud UTC-s. Seda atribuuti kasutatakse tabelihalduskäskudega.
Olulised erinevused TTL-i käsitlemise ja veeruperekonna TTL-ide vahel on toodud allpool
- Lahtri TTL-id väljendatakse sekundite asemel millisekundites.
- Lahtri TTL-id ei saa pikendada lahtri tegelikku eluiga kaugemale kui veeru perekonna taseme TTL-i säte.
Tabelite halduse käsud
Need käsud võimaldavad programmeerijatel luua ridade ja veergude perekondadega tabeleid ja tabeliskeeme.
Järgmised on tabelihalduse käsud
- Looma
- nimekiri
- Kirjeldama
- Keela
- Keela_kõik
- Võimaldama
- Luba_kõik
- Drop
- Drop_all
- Näita_filtreid
- Vanus
- Alter_status
Vaatame näite abil erinevaid käskude kasutamist HBase'is.
Looma
Syntax: create <tablename>, <columnfamilyname>
Näide: -
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
Ülaltoodud näide selgitab, kuidas luua HBase'is tabel määratud nimega, mis on antud sõnastikus või spetsifikatsioonides vastavalt veeruperekonnale. Lisaks sellele saame sellesse edastada ka mõned tabeli ulatuse atribuudid.
Selleks, et kontrollida, kas tabel 'haridus' on loodud või mitte, peame kasutama "nimekiri" käsk, nagu allpool mainitud.
nimekiri
Syntax:list
- Käsk "List" kuvab kõik HBase'is olemasolevad või loodud tabelid
- Ülaltoodud ekraanipildil olev väljund näitab praegu HBase'i olemasolevaid tabeleid
- Sellel ekraanipildil on näha, et HBase'is on kokku 8 tabelit
- Saame filtreerida tabelite väljundväärtusi, edastades valikulisi regulaaravaldise parameetreid
Kirjeldama
Syntax:describe <table name>
hbase(main):010:0>describe 'education'
See käsk kirjeldab nimega tabelit.
- See annab lisateavet nimetatud tabelis olevate veeruperekondade kohta
- Meie puhul kirjeldab see tabelit "haridus".
- See annab teavet tabeli nime koos veeruperekondade, seotud filtrite, versioonide ja mõne muu üksikasjaga.
keelata
Syntax: disable <tablename>
hbase(main):011:0>disable 'education'
- See käsk hakkab nimega tabelit keelama
- Kui tabel tuleb kustutada või maha jätta, tuleb see esmalt keelata
Siin, ülaltoodud ekraanipildil, keelame tabelihariduse
disable_all
Syntax: disable_all<"matching regex"
- See käsk keelab kõik antud regexile vastavad tabelid.
- Rakendamine on sama kui kustutamiskäsk (välja arvatud regexi lisamine sobitamiseks)
- Kui tabel keelatakse, saab kasutaja tabeli HBase'ist kustutada
- Enne tabeli kustutamist või kukutamist tuleks see esmalt keelata
Võimaldama
Syntax: enable <tablename>
hbase(main):012:0>enable 'education'
- See käsk alustab nimega tabeli lubamist
- Olenemata sellest, milline tabel on keelatud, kasutame seda käsku eelmise oleku taastamiseks
- Kui tabel on esmalt keelatud ja seda ei kustutata ega maha visata, ja kui tahame keelatud tabelit uuesti kasutada, peame selle selle käsuga lubama.
- Siin ülaloleval ekraanipildil lubame tabeli "haridus".
näita_filtreid
Syntax: show_filters
See käsk kuvab kõik HBase'is olevad filtrid, nagu ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter jne.
tilk
Syntax:drop <table name>
hbase(main):017:0>drop 'education'
Peame järgima allolevaid kukutamiskäsu punkte
- HBase'is oleva tabeli kustutamiseks peame selle esmalt keelama
- HBase'is oleva tabeli tühistamiseks peame selle esmalt keelama
- Nii et esmalt kukutatav või kustutatav tabel tuleks keelata käsuga disable
- Siin ülaltoodud ekraanipildil jätame tabeli "hariduse".
- Enne selle käsu täitmist peate keelama tabeli "education".
drop_all
Syntax: drop_all<"regex">
- See käsk tühistab kõik antud regexile vastavad tabelid
- Enne selle käsu käivitamist käsu disable_all abil tuleb tabelid esmalt keelata
- Regex-sobivate avaldistega tabelid langevad HBase'ist välja
is_enabled
Syntax: is_enabled 'education'
See käsk kontrollib, kas nimega tabel on lubatud või mitte. Tavaliselt on käsutoimingute "enable" ja "is_enabled" vahel väike segadus, mille siin kustutame
- Oletame, et tabel on keelatud, selle tabeli kasutamiseks peame selle lubama käsu abil
- is_enabled käsk kontrollib, kas tabel on lubatud või mitte
muutma
Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5
See käsk muudab veeru perekonna skeemi. Et mõista, mida see täpselt teeb, oleme seda siin näitega selgitanud.
Näited:
Nendes näidetes teeme tabelites ja selle veergudes käsu muutmise toiminguid. Teeme operatsioone nagu
- Ühe, mitme veeru perekonnanimede muutmine
- Veergude perekonnanimede kustutamine tabelist
- Mitmed muud toimingud, mis kasutavad tabeliga ulatuse atribuute
- Tabeli 'education' veeruperekonna 'guru99_1' muutmiseks või lisamiseks praegusest väärtusest, et säilitada maksimaalselt 5 lahtri VERSIONS,
- "education" on tabeli nimi, mis on varem loodud veeru nimega "guru99".
- Siin püüame alter käsu abil muuta veeru perekonna skeemi guru99_1 asemel guru99
hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
- Muuda käsku saate kasutada ka mitmel veeruperel. Näiteks määratleme kaks uut veergu oma olemasolevasse tabelisse "haridus".
hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
- Selle käsu abil saame korraga muuta rohkem kui ühte veeruskeemi
- guru99_2 ja guru99_3 nagu on näidatud ülaloleval pildil, on kaks uut veeru nime, mille oleme tabelihariduse jaoks määratlenud
- Selle käsu kasutamise viisi näeme eelmises ekraanipildis
- Selles etapis näeme, kuidas tabelist veergude perekonda kustutada. Tabeli „haridus” veeruperekonna „f1” kustutamiseks.
Kasutage ühte allolevatest käskudest,
hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'
- Selle käsuga proovime kustutada veeruruumi nime guru99_1, mille me varem esimeses etapis lõime
- Nagu on näidatud allolevatel ekraanipiltidel, näitab see kahte sammu – kuidas muuta tabeli ulatuse atribuuti ja kuidas eemaldada tabeli ulatuse atribuut.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'
Step 1) Saate muuta tabeli ulatuse atribuute, nagu MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH jne. Need saab panna lõppu; näiteks piirkonna maksimaalseks suuruseks 128 MB või mis tahes muu mäluväärtuse muutmiseks, mida kasutame seda käsku.
Kasutus:
- Saame kasutada MAX_FILESIZE tabeliga ulatuse atribuudina nagu ülal
- MAX_FILESIZE-s olev arv on baitides väljendatud mälu kestus
NMÄRKUS: MAX_FILESIZE Atribuutide tabeli ulatuse määravad mõned HBase'is olevad atribuudid. MAX_FILESIZE kuuluvad ka tabeli ulatuse atribuutide alla.
Step 2) Samuti saate eemaldada atribuudi tabeli ulatus, kasutades meetodit table_att_unset. Kui näete käsku
alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
- Ülaltoodud ekraanipilt näitab muudetud tabeli nime koos ulatuse atribuutidega
- Meetodit table_att_unset kasutatakse tabelis olevate atribuutide tühistamiseks
- Teisel juhul tühistame atribuudi MAX_FILESIZE
- Pärast käsu täitmist tühistab see atribuudi MAX_FILESIZE tabelist "education".
alter_status
Syntax: alter_status 'education'
- Selle käsu kaudu saate käsu alter oleku
- Mis näitab tabeli piirkondade arvu, mis on saanud värskendatud skeemi pääsutabeli nime
- Siin ülaloleval ekraanipildil on 1/1 piirkondadest värskendatud. See tähendab, et see on värskendanud ühte piirkonda. Pärast seda, kui see õnnestub, kuvatakse kommentaar tehtud.
Andmetöötluskäsud
Need käsud töötavad tabelis, mis on seotud andmete manipuleerimisega, nagu andmete tabelisse lisamine, tabelist andmete toomine ja skeemi kustutamine jne.
Nende alla kuuluvad käsud
- Loendama
- Panema
- Saama
- kustutama
- Kustutada kõik
- Kärpima
- skaneerimine
Vaatame nende käskude kasutamist näite abil.
Loendama
Syntax: count <'tablename'>, CACHE =>1000
- Käsk hangib tabelis olevate ridade arvu. Selle tagastatav väärtus on ridade arv.
- Praegune arv kuvatakse vaikimisi iga 1000 rea kohta.
- Loendusintervalli võib valikuliselt määrata.
- Vahemälu vaikemaht on 10 rida.
- Käsk Count töötab kiiresti, kui see on konfigureeritud õige vahemäluga.
Näide:
hbase> count 'guru99', CACHE=>1000
See näidisloendus toob tabelist „Guru1000” korraga 99 rida.
Kui tabel koosneb rohkematest ridadest, saame vahemälu muuta väiksemaks.
Kuid vaikimisi laadib see ühe rea korraga.
hbase>count 'guru99', INTERVAL => 100000 hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000
Kui oletame, et tabel “Guru99”, millel on mõni tabeliviit, näiteks g.
Saame käitada loenduskäsku ka tabeliviites, nagu allpool
hbase>g.count INTERVAL=>100000 hbase>g.count INTERVAL=>10, CACHE=>1000
Panema
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Seda käsku kasutatakse järgmiste asjade jaoks
- See paneb määratletud või määratud tabelisse või reale või veergu lahtri väärtuse.
- See koordineerib valikuliselt ajatemplit.
Näide:
- Siin asetame väärtused tabelisse "guru99" rea r1 ja veeru c1 alla
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Oleme paigutanud tabelisse “guru10,15” kolm väärtust, 30 ja 99, nagu on näidatud alloleval ekraanipildil
- Oletame, et tabelis “Guru99” on mõni tabeliviide, näiteks g. Samuti võime käsku käivitada tabeliviites
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
- Väljund on selline, nagu on näidatud ülaltoodud ekraanipildil pärast väärtuste paigutamist "guru99-sse".
Kontrollimaks, kas sisendväärtus on tabelisse õigesti sisestatud, kasutame käsku “scan”. Alloleval ekraanipildil näeme, et väärtused on õigesti sisestatud
Koodilõik: harjutamiseks
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
Koodilõigu põhjal teeme neid asju
- Siin loome tabeli nimega 'guru99' veeru nimega "Edu".
- Kasutades käsku "put", asetame väärtused tabeli "guru1" veerus "Edu" rea nimesse r99.
Saama
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Siin sisaldab TIMERANGE, TIMESTAMP, VERSIONS ja FILTER.
Seda käsku kasutades kuvatakse tabelis rea või lahtri sisu. Lisaks saate sellele lisada ka täiendavaid parameetreid, nagu TIMESTAMP, TIMERANGE, VERSIONS, FILTERS jne, et saada teatud rea või lahtri sisu.
Näited: -
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
Tabeli “guru99” rea r1 ja veeru c1 väärtused kuvatakse selle käsu abil, nagu on näidatud ülaltoodud ekraanipildil
hbase> get 'guru99', 'r1'
Tabeli “guru99” jaoks kuvatakse selle käsu abil rea r1 väärtused
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
Tabeli “guru99” jaoks kuvatakse selle käsu abil rea 1 väärtused ajavahemikus ts1 ja ts2
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
Tabeli “guru99” rea r1 ja veeruperede c1, c2 ja c3 väärtused kuvatakse selle käsuga
kustutama
Syntax:delete <'tablename'>,<'row name'>,<'column name'>
- See käsk kustutab rea või veeru määratletud tabelis lahtri väärtuse.
- Kustutamine peab ja peaks täpselt ühtima kustutatud lahtrite koordinaatidega.
- Skannimisel lahtri kustutamine suleb väärtuste vanemad versioonid.
Näide:
hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
- Ülaltoodud täitmine kustutab tabeli "guru1" veeruperest c1 rea r99.
- Oletame, et tabelis "guru99" on mõni tabeliviide, näiteks g.
- Käsu saame käivitada ka tabeliviites hbase> g.delete 'guru99', 'r1', 'c1'.
kustuta kõik
Syntax: deleteall <'tablename'>, <'rowname'>
- See käsk kustutab kõik antud rea lahtrid.
- Soovi korral saame süntaksile määrata veergude nimed ja ajatempli.
Näide: -
hbase>deleteall 'guru99', 'r1', 'c1'
See kustutab kõik tabelis olevad read ja veerud. Valikuliselt võime selles mainida veergude nimesid.
Kärpima
Syntax: truncate <tablename>
Pärast hbase tabeli kärpimist kuvatakse skeem, kuid mitte kirjed. See käsk täidab 3 funktsiooni; need on loetletud allpool
- Keelab tabeli, kui see juba esitatakse
- Loobub laud, kui see juba olemas on
- Loob mainitud tabeli uuesti
skaneerimine
Syntax: scan <'tablename'>, {Optional parameters}
See käsk kontrollib kogu tabelit ja kuvab tabeli sisu.
- Süsteemis olevate tabelite kohta lisateabe saamiseks saame sellele skannimiskäsule edastada mitu valikulist spetsifikatsiooni.
- Skanneri spetsifikatsioonid võivad sisaldada ühte või mitut järgmistest atribuutidest.
- Need on TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW ja STOPROW.
scan 'guru99'
Väljund, nagu allpool näidatud ekraanipildil
Ülaltoodud ekraanipildil
- See näitab "guru99" tabelit veeru nime ja väärtustega
- See koosneb kolmest rea väärtusest r1, r2, r3 ühe veeru väärtuse c1 jaoks
- See kuvab ridadega seotud väärtused
Näited: -
Skannimise käsu erinevad kasutusalad
käsk | Kasutus |
---|---|
skanni '.META.', {COLUMNS => 'info:regioninfo'} | See kuvab kogu HBase'i tabelites olevate veergudega seotud metaandmete teabe |
skanni 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} | See kuvab tabeli guru99 sisu koos nende veeruperekondadega c1 ja c2 piirates väärtusi 10-ni |
skanni 'guru99', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]} | See kuvab guru99 sisu veeru nimega c1 koos väärtustega, mis asuvad mainitud ajavahemiku atribuudi väärtuse vahel |
skanni 'guru99', {RAW => true, VERSIONS =>10} | Selles käsus pakub RAW=> true täiustatud funktsiooni, näiteks kõigi tabelis guru99 olevate lahtrite väärtuste kuvamist |
Koodi näide:
Esmalt looge tabel ja asetage väärtused tabelisse
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
Sisestuskuva:
Kui käivitame skannimise käsu
Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}
See kuvab allpool näidatud väljundi.
Väljundi ekraanipilt:
Ülaltoodud ekraanipildil näidatud väljund annab järgmise teabe
- Guru99 tabeli skannimine atribuutidega RAW=>true, VERSIONS=>1000
- Veeruperede ja väärtustega ridade kuvamine
- Kolmandas reas kuvatavad väärtused näitavad veerus olevat kustutatud väärtust
- Selle kuvatav väljund on juhuslik; see ei saa olla samas järjekorras kui tabelisse sisestatud väärtused
Cluster Replikatsioonikäsud
- Need käsud töötavad HBase'i klastri seadistamise režiimis.
- Klastris kaaslaste lisamiseks ja eemaldamiseks ning replikatsiooni alustamiseks ja peatamiseks kasutatakse neid käske üldiselt.
käsk | Funktsionaalsus |
---|---|
add_peer | Lisage paljundamiseks klastrisse analooge
hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod |
eemalda_peer | Peatab määratletud replikatsioonivoo.
Kustutab kogu kaaslase metaandmete teabe hbase> eemalda_peer '1' |
start_replication | Taaskäivitab kõik replikatsioonifunktsioonid
hbase> start_replication |
stop_replication | Peatab kõik replikatsioonifunktsioonid
hbase>stop_replication |
kokkuvõte
HBase'i kest ja üldkäsud annavad täielikku teavet erinevat tüüpi andmetega manipuleerimise, tabelihalduse ja klastri replikatsioonikäskude kohta. Nende käskude abil saame HBase'is olevates tabelites täita mitmesuguseid funktsioone.