Příkazy prostředí HBase s příklady
Po úspěšné instalaci HBase nad Hadoop získáme interaktivní shell pro provádění různých příkazů a provádění několika operací. Pomocí těchto příkazů můžeme provádět více operací s datovými tabulkami, které mohou poskytnout lepší efektivitu ukládání dat a flexibilní interakci ze strany klienta.
S HBase můžeme komunikovat dvěma způsoby,
- Interaktivní shell HBase a
- Přes Java API
V HBase se interaktivní režim shellu používá k interakci s HBase pro operace s tabulkami, správu tabulek a datové modelování. Použitím Java API modelu, můžeme provádět všechny typy tabulkových a datových operací v HBase. Můžeme komunikovat s HBase pomocí obou těchto metod.
Jediný rozdíl mezi těmito dvěma je Java API používá kód java pro připojení k HBase a režim shellu používá příkazy prostředí pro připojení k HBase.
Rychlé překrytí HBase, než budeme pokračovat-
- Používá HBase Hadoop soubory jako úložný systém pro uložení velkého množství dat. Hbase se skládá z hlavních serverů a serverů regionů
- Data, která se budou ukládat do HBase, budou ve formě regionů. Dále budou tyto oblasti rozděleny a uloženy na serverech více oblastí
- Tyto příkazy shellu umožňují programátorovi definovat schémata tabulek a datové operace pomocí úplné interakce v režimu shellu
- Ať už použijeme jakýkoli příkaz, projeví se v datovém modelu HBase
- Příkazy shellu HBase používáme v interpretech skriptů operačního systému, jako je Bash shell
- Bash Shell je výchozí interpret příkazů pro většinu z nich Linux si Unix provozní rozvody
- Pokročilé verze HBase poskytují příkazy shellu objektově orientované odkazy pro tabulky ve stylu jruby
- Referenční proměnné tabulky lze použít k provádění operací s daty v režimu shellu HBase
Například,
- V tomto tutoriálu jsme vytvořili tabulku, ve které „vzdělávání“ představuje název tabulky a odpovídá názvu sloupce „guru99“.
- V některých příkazech „guru99“ sám představuje název tabulky.
Obecné příkazy
V Hbase jsou obecné příkazy kategorizovány do následujících příkazů
- Status
- Verze
- Table_help ( scan, drop, get, put, disable atd.)
- Kdo jsem
Abychom se dostali do příkazu shellu HBase, musíme nejprve spustit kód, jak je uvedeno níže
hbase Shell
Jakmile se dostaneme do shellu HBase, můžeme provádět všechny příkazy shellu uvedené níže. Pomocí těchto příkazů můžeme provádět všechny typy tabulkových operací v režimu shellu HBase.
Podívejme se na všechny tyto příkazy a jejich použití jeden po druhém s příkladem.
Status
Syntax:status
Tento příkaz poskytne podrobnosti o stavu systému, jako je počet serverů přítomných v clusteru, počet aktivních serverů a průměrná hodnota zatížení. Můžete také předat jakékoli konkrétní parametry v závislosti na tom, jak podrobný stav chcete o systému vědět. Parametry mohou být 'souhrn', 'jednoduché' nebo 'podrobné', výchozí poskytnutý parametr je „souhrn“.
Níže jsme ukázali, jak můžete příkazu status předat různé parametry.
Pokud se podíváme na níže uvedený snímek obrazovky, získáme lepší představu.
hbase(main):001:0>status hbase(main):002:0>status 'simple' hbase(main):003:0>status 'summary' hbase(main):004:0> status 'detailed'
Když spustíme tento stav příkazu, poskytne informace o počtu přítomných serverů, mrtvých serverech a průměrné zátěži serveru, zde na snímku obrazovky zobrazuje informace jako - 1 živý server, 1 mrtvý server a průměrné zatížení 7.0000 XNUMX.
Verze
Syntax: version
- Tento příkaz zobrazí aktuálně používanou verzi HBase v příkazovém režimu
- Pokud spustíte příkaz version, poskytne výstup, jak je uvedeno výše
Nápověda ke stolu
Syntax:table_help
Tento příkaz vede
- Co a jak používat příkazy odkazované na tabulku
- Poskytne různá použití příkazů shellu HBase a jejich syntaxe
- Zde na snímku obrazovky výše ukazuje syntaxi „vytvořit" a "get_table” příkaz s jeho použitím. Po vytvoření tabulky v HBase můžeme pomocí těchto příkazů manipulovat s tabulkou.
- Poskytne informace o příkazech pro manipulaci s tabulkami, jako je put, get a všechny další příkazy.
whoami
Syntaxe:
Syntax: Whoami
Tento příkaz „whoami“ se používá k vrácení aktuálních informací o uživateli HBase z clusteru HBase.
Poskytne informace jako
- Skupiny přítomné v HBase
- Informace o uživateli, například v tomto případě „hduser“, představují uživatelské jméno, jak je znázorněno na snímku obrazovky
TTL (Time To Live) – Atribut
V HBase lze rodiny sloupců nastavit na časové hodnoty v sekundách pomocí TTL. Po uplynutí doby platnosti HBase automaticky odstraní řádky. Tento atribut platí pro všechny verze řádku – dokonce i pro aktuální verzi.
Čas TTL zakódovaný v HBase pro řádek je uveden v UTC. Tento atribut se používá s příkazy správy tabulek.
Důležité rozdíly mezi zpracováním TTL a TTL rodiny Column jsou uvedeny níže
- TTL buněk jsou vyjádřeny v jednotkách milisekund místo sekund.
- TTL buňky nemohou prodloužit efektivní životnost buňky nad rámec nastavení TTL na úrovni rodiny sloupců.
Příkazy pro správu tabulek
Tyto příkazy umožní programátorům vytvářet tabulky a schémata tabulek s řádky a rodinami sloupců.
Následují příkazy pro správu tabulek
- Vytvořit
- Seznam
- Popsat
- Zakázat
- Vypnout vše
- umožnit
- Povolit_vše
- Pokles
- Drop_all
- Zobrazit_filtry
- Věk
- Alter_status
Podívejme se na příkladu použití různých příkazů v HBase.
Vytvořit
Syntax: create <tablename>, <columnfamilyname>
Příklad:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
Výše uvedený příklad vysvětluje, jak vytvořit tabulku v HBase se zadaným názvem daným podle slovníku nebo specifikací podle rodiny sloupců. Kromě toho do něj můžeme také předat některé atributy rozsahu tabulky.
Abychom mohli zkontrolovat, zda je tabulka 'vzdělávání' vytvořena nebo ne, musíme použít "seznam" příkaz, jak je uvedeno níže.
Seznam
Syntax:list
- Příkaz „List“ zobrazí všechny tabulky, které jsou přítomné nebo vytvořené v HBase
- Výstup zobrazený na výše uvedeném snímku obrazovky aktuálně zobrazuje existující tabulky v HBase
- Zde na tomto snímku obrazovky je vidět, že v HBase je celkem 8 tabulek
- Výstupní hodnoty z tabulek můžeme filtrovat předáním volitelných parametrů regulárního výrazu
Popsat
Syntax:describe <table name>
hbase(main):010:0>describe 'education'
Tento příkaz popisuje pojmenovanou tabulku.
- Poskytne více informací o rodinách sloupců přítomných ve zmíněné tabulce
- V našem případě poskytuje popis tabulky „vzdělávání“.
- Poskytne informace o názvu tabulky s rodinami sloupců, souvisejících filtrech, verzích a některých dalších podrobnostech.
zakázat
Syntax: disable <tablename>
hbase(main):011:0>disable 'education'
- Tento příkaz spustí deaktivaci pojmenované tabulky
- Pokud je třeba tabulku odstranit nebo zahodit, musí se nejprve deaktivovat
Zde na výše uvedeném snímku obrazovky zakazujeme vzdělávání tabulek
vypnout vše
Syntax: disable_all<"matching regex"
- Tento příkaz zakáže všechny tabulky odpovídající danému regulárnímu výrazu.
- Implementace je stejná jako u příkazu delete (s výjimkou přidání regulárního výrazu pro shodu)
- Jakmile se tabulka deaktivuje, uživatel může odstranit tabulku z HBase
- Před odstraněním nebo zrušením tabulky by měla být nejprve deaktivována
umožnit
Syntax: enable <tablename>
hbase(main):012:0>enable 'education'
- Tento příkaz spustí povolení pojmenované tabulky
- Bez ohledu na to, která tabulka je zakázána, k načtení zpět do předchozího stavu použijeme tento příkaz
- Pokud je tabulka v první instanci zakázána a není odstraněna nebo zrušena, a pokud chceme zakázanou tabulku znovu použít, musíme ji povolit pomocí tohoto příkazu.
- Zde na výše uvedeném snímku obrazovky povolujeme tabulku „vzdělávání“.
zobrazit_filtry
Syntax: show_filters
Tento příkaz zobrazí všechny filtry přítomné v HBase, jako je ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter atd.
pokles
Syntax:drop <table name>
hbase(main):017:0>drop 'education'
Pro příkaz drop musíme dodržovat níže uvedené body
- Chcete-li odstranit tabulku přítomnou v HBase, musíme ji nejprve zakázat
- Abychom odstranili tabulku přítomnou v HBase, musíme ji nejprve zakázat
- Takže buď tabulku, kterou chcete nejprve upustit nebo odstranit, by měla být zakázána pomocí příkazu disable
- Zde na výše uvedeném snímku obrazovky vypouštíme tabulku „vzdělávání“.
- Před provedením tohoto příkazu je nutné zakázat tabulku „vzdělávání“.
drop_all
Syntax: drop_all<"regex">
- Tento příkaz zruší všechny tabulky odpovídající danému regulárnímu výrazu
- Před provedením tohoto příkazu pomocí disable_all se tabulky musí nejprve deaktivovat
- Tabulky s výrazy odpovídajícími regulárnímu výrazu z HBase zmizí
je povoleno
Syntax: is_enabled 'education'
Tento příkaz ověří, zda je pojmenovaná tabulka povolena nebo ne. Obvykle dochází k malému zmatku mezi akcí příkazu „enable“ a „is_enabled“, což zde vysvětlíme
- Předpokládejme, že tabulka je zakázána, abychom ji mohli používat, musíme ji povolit pomocí příkazu enable
- Příkaz is_enabled zkontroluje, zda je tabulka povolena nebo ne
změnit
Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5
Tento příkaz změní schéma rodiny sloupců. Abychom pochopili, co přesně dělá, vysvětlili jsme to zde na příkladu.
Příklady:
V těchto příkladech budeme provádět operace s příkazy alter na tabulkách a na jejich sloupcích. Provedeme operace jako
- Změna názvů rodin s jedním, více sloupci
- Odstranění názvů rodin sloupců z tabulky
- Několik dalších operací pomocí atributů oboru s tabulkou
- Chcete-li změnit nebo přidat rodinu sloupců 'guru99_1' v tabulce 'vzdělávání' z aktuální hodnoty, aby bylo zachováno maximálně 5 buněk VERZE,
- „vzdělávání“ je název tabulky vytvořený dříve s názvem sloupce „guru99“.
- Zde se pomocí příkazu alter pokoušíme změnit schéma rodiny sloupců na guru99_1 z guru99
hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
- Příkaz alter můžete také použít na několik rodin sloupů. Například definujeme dva nové sloupce do naší stávající tabulky „vzdělávání“.
hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
- Pomocí tohoto příkazu můžeme změnit více sloupcových schémat najednou
- guru99_2 a guru99_3, jak je znázorněno na výše uvedeném snímku obrazovky, jsou dva nové názvy sloupců, které jsme definovali pro vzdělávání tabulek
- Způsob použití tohoto příkazu můžeme vidět na předchozím snímku obrazovky
- V tomto kroku uvidíme, jak odstranit rodinu sloupců z tabulky. Chcete-li odstranit rodinu sloupců 'f1' v tabulce 'vzdělávání'.
Použijte jeden z následujících příkazů,
hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'
- V tomto příkazu se snažíme odstranit název prostoru sloupců guru99_1, který jsme dříve vytvořili v prvním kroku
- Jak je znázorněno na snímcích níže, ukazuje dva kroky – jak změnit atribut rozsahu tabulky a jak odstranit atribut rozsahu tabulky.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'
Krok 1) Můžete změnit atributy rozsahu tabulky jako MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH atd. Tyto atributy lze umístit na konec; například pro změnu maximální velikosti oblasti na 128 MB nebo jakoukoli jinou hodnotu paměti, kterou použijeme tento příkaz.
Použití:
- Můžeme použít MAX_FILESIZE s tabulkou jako atributem rozsahu, jak je uvedeno výše
- Číslo zastoupené v MAX_FILESIZE je z hlediska paměti v bajtech
NPOZNÁMKA: Rozsah tabulky atributů MAX_FILESIZE bude určen některými atributy přítomnými v HBase. MAX_FILESIZE také spadá pod atributy rozsahu tabulky.
Krok 2) Atribut rozsahu tabulky můžete také odstranit pomocí metody table_att_unset. Pokud vidíte příkaz
alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
- Výše uvedený snímek obrazovky ukazuje změněný název tabulky s atributy rozsahu
- Metoda table_att_unset se používá k deaktivaci atributů přítomných v tabulce
- V druhém případě deaktivujeme atribut MAX_FILESIZE
- Po provedení příkazu jednoduše zruší nastavení atributu MAX_FILESIZE z tabulky “vzdělávání”.
alter_status
Syntax: alter_status 'education'
- Prostřednictvím tohoto příkazu můžete získat stav příkazu alter
- Což označuje počet oblastí tabulky, které obdržely aktualizovaný název předávací tabulky schématu
- Zde ve výše uvedeném snímku obrazovky ukazuje 1/1 aktualizované oblasti. To znamená, že aktualizoval jeden region. Poté, pokud bude úspěšný, zobrazí komentář hotovo.
Příkazy pro manipulaci s daty
Tyto příkazy budou fungovat na tabulce související s manipulacemi s daty, jako je vkládání dat do tabulky, načítání dat z tabulky a mazání schématu atd.
Příkazy spadají pod tyto jsou
- Počítat
- dát
- Získejte
- Vymazat
- Smazat všechny
- Zkraťte
- Skenovat
Podívejme se na použití těchto příkazů na příkladu.
Počítat
Syntax: count <'tablename'>, CACHE =>1000
- Příkaz načte počet řádků v tabulce. Hodnota vrácená tímto je počet řádků.
- Ve výchozím nastavení se aktuální počet zobrazuje na každých 1000 řádků.
- Interval počítání může být volitelně specifikován.
- Výchozí velikost mezipaměti je 10 řádků.
- Příkaz Count bude fungovat rychle, když je nakonfigurován s pravou mezipamětí.
Příklad:
hbase> count 'guru99', CACHE=>1000
Tento příklad počtu načte 1000 řádků najednou z tabulky „Guru99“.
Pokud se tabulka skládá z více řádků, můžeme cache nastavit na nějakou nižší hodnotu.
Ale ve výchozím nastavení bude načítat jeden řádek po druhém.
hbase>count 'guru99', INTERVAL => 100000 hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000
Pokud předpokládejme, že tabulka „Guru99“ s nějakým odkazem na tabulku, jako je g.
Můžeme spustit příkaz count na odkaz na tabulku také jako níže
hbase>g.count INTERVAL=>100000 hbase>g.count INTERVAL=>10, CACHE=>1000
dát
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Tento příkaz se používá pro následující věci
- Vloží buňku „hodnotu“ do definované nebo zadané tabulky nebo řádku nebo sloupce.
- Volitelně bude koordinovat časové razítko.
Příklad:
- Zde umístíme hodnoty do tabulky „guru99“ pod řádek r1 a sloupec c1
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Do tabulky „guru10,15“ jsme umístili tři hodnoty, 30, 99 a XNUMX, jak je znázorněno na obrázku níže
- Předpokládejme, že tabulka „Guru99“ má nějaký odkaz na tabulku jako řekněme g. Můžeme také spustit příkaz na odkaz na tabulku také jako
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
- Po umístění hodnot do „guru99“ bude výstup stejný jako na obrázku výše.
Pro kontrolu, zda je vstupní hodnota správně vložena do tabulky, použijeme příkaz „scan“. Na níže uvedeném snímku obrazovky vidíme, že hodnoty jsou vloženy správně
Úryvek kódu: Pro praxi
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
Z fragmentu kódu děláme tyto věci
- Zde vytváříme tabulku s názvem „guru99“ s názvem sloupce „Edu“.
- Pomocí příkazu „put“ vkládáme hodnoty do řádku s názvem r1 ve sloupci „Edu“ do tabulky „guru99“.
Získejte
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Tady zahrnují TIMERANGE, TIMESTAMP, VERSION a FILTERS.
Pomocí tohoto příkazu získáte obsah řádku nebo buňky v tabulce. Kromě toho můžete také přidat další parametry, jako je TIMESTAMP, TIMERANGE, VERSIONS, FILTERS atd., abyste získali konkrétní řádek nebo obsah buňky.
Příklady:-
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
Pro tabulku „guru99′ se pomocí tohoto příkazu zobrazí hodnoty řádku r1 a sloupce c1, jak je znázorněno na obrázku výše
hbase> get 'guru99', 'r1'
Pro tabulku „guru99“ se pomocí tohoto příkazu zobrazí hodnoty r1
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
Pro tabulku „guru99“ se pomocí tohoto příkazu zobrazí hodnoty řádku 1 v časovém rozsahu ts1 a ts2
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
Pro tabulku „guru99“ se pomocí tohoto příkazu zobrazí hodnoty c1, c1, c2 řádků r3 a rodin sloupců
Vymazat
Syntax:delete <'tablename'>,<'row name'>,<'column name'>
- Tento příkaz vymaže hodnotu buňky v definované tabulce řádku nebo sloupce.
- Odstranění musí a mělo by přesně odpovídat souřadnicím odstraněných buněk.
- Při skenování smazat buňku potlačí starší verze hodnot.
Příklad:
hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
- Výše uvedené provedení odstraní řádek r1 z rodiny sloupců c1 v tabulce „guru99“.
- Předpokládejme, že tabulka „guru99“ má nějaký odkaz na tabulku, jako je například g.
- Můžeme také spustit příkaz na odkaz na tabulku hbase> g.delete 'guru99', 'r1', 'c1'“.
smazat všechny
Syntax: deleteall <'tablename'>, <'rowname'>
- Tento příkaz odstraní všechny buňky v daném řádku.
- Do syntaxe můžeme volitelně definovat názvy sloupců a časové razítko.
Příklad:-
hbase>deleteall 'guru99', 'r1', 'c1'
Tím se odstraní všechny řádky a sloupce v tabulce. Volitelně v něm můžeme uvést názvy sloupců.
Zkraťte
Syntax: truncate <tablename>
Po zkrácení tabulky hbase se zobrazí schéma, ale ne záznamy. Tento příkaz provádí 3 funkce; ty jsou uvedeny níže
- Deaktivuje tabulku, pokud již existuje
- Pokud již existuje, tabulka klesne
- Znovu vytvoří zmíněnou tabulku
Skenovat
Syntax: scan <'tablename'>, {Optional parameters}
Tento příkaz prohledá celou tabulku a zobrazí obsah tabulky.
- Tomuto příkazu skenování můžeme předat několik volitelných specifikací, abychom získali více informací o tabulkách přítomných v systému.
- Specifikace skeneru mohou zahrnovat jeden nebo více z následujících atributů.
- Jsou to TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW a STOPROW.
scan 'guru99'
Výstup, jak je uvedeno níže, je znázorněn na snímku obrazovky
Na snímku obrazovky výše
- Zobrazuje tabulku „guru99“ s názvem sloupce a hodnotami
- Skládá se ze tří řádkových hodnot r1, r2, r3 pro hodnotu jednoho sloupce c1
- Zobrazuje hodnoty spojené s řádky
Příklady:-
Různá použití příkazu skenování
Příkaz | Používání |
---|---|
skenovat '.META.', {SLOUPCE => 'info:regioninfo'} | Zobrazuje všechny informace metadat související se sloupci, které jsou přítomny v tabulkách v HBase |
skenování 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} | Zobrazuje obsah tabulky guru99 s rodinami sloupců c1 a c2 omezujícími hodnoty na 10 |
skenování 'guru99', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]} | Zobrazuje obsah guru99 s názvem sloupce c1 s hodnotami přítomnými mezi zmíněnou hodnotou atributu časového rozsahu |
scan 'guru99', {RAW => true, VERSIONS =>10} | V tomto příkazu RAW=> true poskytuje pokročilé funkce, jako je zobrazení všech hodnot buněk přítomných v tabulce guru99 |
Příklad kódu:
Nejprve vytvořte tabulku a vložte hodnoty do tabulky
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
Vstupní snímek obrazovky:
Pokud spustíme příkaz scan
Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}
Zobrazí výstup uvedený níže.
Výstupní snímek obrazovky:
Výstup zobrazený na výše uvedeném snímku obrazovky poskytuje následující informace
- Skenování tabulky guru99 s atributy RAW=>true, VERZE=>1000
- Zobrazení řádků s rodinami sloupců a hodnotami
- Ve třetím řádku zobrazené hodnoty ukazují smazanou hodnotu přítomnou ve sloupci
- Výstup, který zobrazuje, je náhodný; nemůže být ve stejném pořadí jako hodnoty, které jsme vložili do tabulky
Cluster Příkazy replikace
- Tyto příkazy fungují v režimu nastavení clusteru HBase.
- Pro přidávání a odebírání peerů do clusteru a pro spuštění a zastavení replikace se tyto příkazy používají obecně.
Příkaz | Funkčnost |
---|---|
add_peer | Přidejte do klastru pro replikaci partnery
hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod |
remove_peer | Zastaví definovaný datový proud replikace.
Odstraní všechny informace metadat o partnerovi hbase> remove_peer '1' |
start_replication | Restartuje všechny funkce replikace
hbase> start_replication |
stop_replication | Zastaví všechny funkce replikace
hbase>stop_replication |
Shrnutí
Příkazy prostředí HBase a obecné příkazy poskytují úplné informace o různých typech manipulace s daty, správě tabulek a příkazech replikace clusteru. Pomocí těchto příkazů můžeme provádět různé funkce na tabulkách přítomných v HBase.