Hbase基本文の使い方
21729 ワード
hbase shellコマンドを使用してhbaseにアクセスします.
入力help ヘルプ情報の表示
サーバーのステータスを表示するには、次の手順に従います.
バージョン情報の表示
現在のユーザーを表示:
表関連コマンドのヘルプ情報を表示します.
テーブルの作成
一般的な構文:create '[namespacename:]tablename' [ ,'columnfamilyname1' [ ,'columnfamilyname2, ....]]
詳細構文help-createを使用してcreate文を表示する
リストコマンドを使用してテーブル名をリストします.
一般的な構文:list '[namespacename:]tablename]
詳細構文はhelp'list'を使用して表示できます.listの後に正規表現を付けて、式に一致するテーブル名をリストできます.
descコマンドを使用して、指定したテーブルの詳細を表示します(descはdescribeと同じです).
構文:desc'[namespacename:]tablename'
describe '[namespacename:]tablename'
詳細構文helpの使用 'describe'表示
putを使用してデータを挿入する
常用文法:put'[namespacename:]tablename','rowkey','columnfamilyname[:column]','value'
詳細構文help'put'を使用して表示
scanを使用して全テーブルデータを表示する
常用構文:scan'[namespacename:]tablename'
詳細構文help'scan'を使用して表示
指定した列のデータを表示するには、次の手順に従います.
getを使用してデータをクエリーするには、次の手順に従います.
構文:get '[namespacename:]tablename' , 'rowkey' [, 'columnfamliyname[:column]']
詳細構文help'get'を使用して表示
deleteを使用してデータを削除する
常用構文:delete'[namespacename:]tablename','rowkey','columnfamliyname:column'
テーブルにcolumnfamilyのみが作成され、columnが具体的に作成されていないデータがある場合、deleteはこのように使用できます.
delete'[namespacename:]tablename','rowkey','columnfamliyname',このようなデータは存在せず,このような文ではデータは削除されない.
より詳細な構文はhelp'delete'を使用して表示します.
incrを使用してデータを追加(デフォルトではcounterを使用してインクリメント)
常用文法:incr'[namespacename:]tablename','rowkey','columnfamilyname:column'
より詳細な構文はhelp'incr'を使用して表示されます.
get_の使用counter現在のcounter値を表示するには、次の手順に従います.
putを使用してデータを更新するには、次の手順に従います.
is_の使用enabled/is_disabledテーブルが有効/無効になっているかどうかを確認
disableを使用してテーブルを無効にする
enbaleを使用してテーブルを有効にする
fam 1というcolumnfamilyを削除します.
テーブルデータを空にします.
テーブルを削除するには、dropテーブルの前にテーブルをdisableする必要があります.
転載先:https://blog.51cto.com/mjal01/1963443
[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]# hbase shell
SLF4J: Class path contains multiple SLF4Jbindings.
SLF4J: Found binding in[jar:file:/usr/hdp/2.4.3.0-227/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in[jar:file:/usr/hdp/2.4.3.0-227/zookeeper/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Seehttp://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type[org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help' forlist of supported commands.
Type "exit" toleave the HBase Shell
Version 1.1.2.2.4.3.0-227, rUnknown, FriSep 9 23:34:30 UTC 2016
hbase(main):001:0>
入力help ヘルプ情報の表示
hbase(main):001:0> help
HBase Shell, version 1.1.2.2.4.3.0-227,rUnknown, Fri Sep 9 23:34:30 UTC 2016
Type 'help "COMMAND"', (e.g.'help "get"' -- the quotes are necessary) for help on a specificcommand.
Commands are grouped. Type 'help"COMMAND_GROUP"', (e.g. 'help "general"') for help on acommand group.
COMMAND GROUPS:
Group name: general
Commands: status, table_help, version, whoami
…
サーバーのステータスを表示するには、次の手順に従います.
hbase(main):002:0> status
1 active master, 0 backup masters, 4servers, 0 dead, 20.5000 average load
バージョン情報の表示
hbase(main):003:0> version
1.1.2.2.4.3.0-227, rUnknown, Fri Sep 9 23:34:30 UTC 2016
現在のユーザーを表示:
hbase(main):004:0> whoami
root (auth:SIMPLE)
groups: root
表関連コマンドのヘルプ情報を表示します.
hbase(main):005:0> table_help
Help for table-reference commands.
You can either create a table via 'create'and then manipulate the table via commands like 'put', 'get', etc.
See the standard help information for howto use each of these commands.
…
テーブルの作成
一般的な構文:create '[namespacename:]tablename' [ ,'columnfamilyname1' [ ,'columnfamilyname2, ....]]
詳細構文help-createを使用してcreate文を表示する
hbase(main):006:0> create 'test','fam1','fam2'
0 row(s) in 8.3530 seconds
=> Hbase::Table – test
リストコマンドを使用してテーブル名をリストします.
一般的な構文:list '[namespacename:]tablename]
詳細構文はhelp'list'を使用して表示できます.listの後に正規表現を付けて、式に一致するテーブル名をリストできます.
hbase(main):011:0> list 'test' – test
TABLE
test
1 row(s) in 0.0110 seconds
=> ["test"]
hbase(main):012:0> list 'tes.*'— tes
TABLE
test
test:testtable
2 row(s) in 0.0150 seconds
=> ["test","test:testtable"]
hbase(main):013:0> list 'default:.*' – default
TABLE
ambarismoketest
test
2 row(s) in 0.0150 seconds
=> ["ambarismoketest","test"]
hbase(main):014:0> list 'test:.*' – test
TABLE
test:testtable
1 row(s) in 0.0140 seconds
=> ["test:testtable"]
descコマンドを使用して、指定したテーブルの詳細を表示します(descはdescribeと同じです).
構文:desc'[namespacename:]tablename'
describe '[namespacename:]tablename'
詳細構文helpの使用 'describe'表示
hbase(main):016:0> desc 'test' test
Table test is ENABLED
test
COLUMN FAMILIES DESCRIPTION
{NAME => 'fam1', BLOOMFILTER =>'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS =>'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRE
SSION => 'NONE', MIN_VERSIONS => '0',BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE =>'0'}
{NAME => 'fam2', BLOOMFILTER =>'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS =>'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRE
SSION => 'NONE', MIN_VERSIONS => '0',BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE =>'0'}
2 row(s) in 0.1710 seconds
hbase(main):017:0> desc 'test:testtable' test testtable
Table test:testtable is ENABLED
test:testtable
COLUMN FAMILIES DESCRIPTION
{NAME => 'colfam1', BLOOMFILTER =>'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS =>'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COM
PRESSION => 'NONE', MIN_VERSIONS =>'0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE =>'0'}
{NAME => 'colfam2', BLOOMFILTER =>'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS =>'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COM
PRESSION => 'NONE', MIN_VERSIONS =>'0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE =>'0'}
{NAME => 'colfam3', BLOOMFILTER =>'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS =>'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COM
PRESSION => 'NONE', MIN_VERSIONS =>'0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE =>'0'}
3 row(s) in 0.0290 seconds
putを使用してデータを挿入する
常用文法:put'[namespacename:]tablename','rowkey','columnfamilyname[:column]','value'
詳細構文help'put'を使用して表示
hbase(main):002:0> put'test','row2','fam1:a','value'
0 row(s) in 0.3760 seconds
hbase(main):003:0> put 'test','row1','fam1:a','value'
0 row(s) in 0.3760 seconds
hbase(main):004:0> put 'test','row1','fam2:a','value'
0 row(s) in 0.3760 seconds
hbase(main):005:0> put'test','row2','fam2:a','value'
0 row(s) in 0.3760 seconds
scanを使用して全テーブルデータを表示する
常用構文:scan'[namespacename:]tablename'
詳細構文help'scan'を使用して表示
hbase(main):002:0> scan 'test'
ROW COLUMN+CELL
row1 column=fam1:a, timestamp=1504767451331, value=value
row1 column=fam2:a, timestamp=1504767471977, value=value
row2 column=fam1:a, timestamp=1504767600686, value=value
row2 column=fam2:a, timestamp=1504767715014, value=value
2 row(s) in 0.1120 seconds
指定した列のデータを表示するには、次の手順に従います.
hbase(main):004:0> scan 'test',{COLUMNS=> 'fam1:a'}
ROW COLUMN+CELL
row1 column=fam1:a, timestamp=1504767451331, value=value
row2 column=fam1:a,timestamp=1504767600686, value=value
2 row(s) in 0.2390 seconds
hbase(main):021:0> get 'test','row1'
COLUMN CELL
fam1:a timestamp=1504768075731, value=\x00\x00\x00\x00\x00\x00\x00\x02
fam2:a timestamp=1504767471977, value=value
2 row(s) in 0.1110 seconds
getを使用してデータをクエリーするには、次の手順に従います.
構文:get '[namespacename:]tablename' , 'rowkey' [, 'columnfamliyname[:column]']
詳細構文help'get'を使用して表示
hbase(main):024:0> get'test','row1','fam1'
COLUMN CELL
fam1:a timestamp=1504768075731, value=\x00\x00\x00\x00\x00\x00\x00\x02
1 row(s) in 0.0690 seconds
hbase(main):026:0> get 'test','row1','fam1:a'
COLUMN CELL
fam1:a timestamp=1504768075731, value=\x00\x00\x00\x00\x00\x00\x00\x02
1 row(s) in 0.0430 seconds
deleteを使用してデータを削除する
常用構文:delete'[namespacename:]tablename','rowkey','columnfamliyname:column'
テーブルにcolumnfamilyのみが作成され、columnが具体的に作成されていないデータがある場合、deleteはこのように使用できます.
delete'[namespacename:]tablename','rowkey','columnfamliyname',このようなデータは存在せず,このような文ではデータは削除されない.
より詳細な構文はhelp'delete'を使用して表示します.
hbase(main):008:0> delete'test','row1','fam1:a'
0 row(s) in 0.3370 seconds
hbase(main):009:0> scan 'test'
ROW COLUMN+CELL
row1 column=fam2:a, timestamp=1504767471977, value=value
row2 column=fam1:a, timestamp=1504767600686, value=value
row2 column=fam2:a, timestamp=1504767715014, value=value
2 row(s) in 0.0850 seconds
incrを使用してデータを追加(デフォルトではcounterを使用してインクリメント)
常用文法:incr'[namespacename:]tablename','rowkey','columnfamilyname:column'
より詳細な構文はhelp'incr'を使用して表示されます.
hbase(main):012:0> incr'test','row1','fam1:a'
COUNTER VALUE = 1
0 row(s) in 1.1700 seconds
hbase(main):013:0> scan 'test'
ROW COLUMN+CELL
row1 column=fam1:a,timestamp=1504768054892, value=\x00\x00\x00\x00\x00\x00\x00\x01
row1 column=fam2:a, timestamp=1504767471977, value=value
row2 column=fam1:a, timestamp=1504767600686, value=value
row2 column=fam2:a, timestamp=1504767715014,value=value
2 row(s) in 0.0410 seconds
hbase(main):014:0> incr'test','row1','fam1:a'
COUNTER VALUE = 2
0 row(s) in 0.0480 seconds
hbase(main):015:0> scan 'test'
ROW COLUMN+CELL
row1 column=fam1:a, timestamp=1504768075731,value=\x00\x00\x00\x00\x00\x00\x00\x02
row1 column=fam2:a, timestamp=1504767471977, value=value
row2 column=fam1:a, timestamp=1504767600686, value=value
row2 column=fam2:a, timestamp=1504767715014, value=value
2 row(s) in 0.0770 seconds
get_の使用counter現在のcounter値を表示するには、次の手順に従います.
hbase(main):027:0> get_counter'test','row1','fam1:a'
COUNTER VALUE = 2
putを使用してデータを更新するには、次の手順に従います.
hbase(main):029:0> scan 'test'
ROW COLUMN+CELL
row1 column=fam1:a, timestamp=1504768075731,value=\x00\x00\x00\x00\x00\x00\x00\x02
row1 column=fam2:a, timestamp=1504767471977, value=value
row2 column=fam1:a, timestamp=1504767600686, value=value
row2 column=fam2:a, timestamp=1504767715014, value=value
2 row(s) in 0.0270 seconds
hbase(main):030:0> put'test','row1','fam1:a','newvalue'
0 row(s) in 0.0250 seconds
hbase(main):031:0> scan 'test'
ROW COLUMN+CELL
row1 column=fam1:a, timestamp=1504768397480, value=newvalue
row1 column=fam2:a, timestamp=1504767471977, value=value
row2 column=fam1:a, timestamp=1504767600686, value=value
row2 column=fam2:a, timestamp=1504767715014, value=value
2 row(s) in 0.0760 seconds
is_の使用enabled/is_disabledテーブルが有効/無効になっているかどうかを確認
hbase(main):032:0> is_enable 'test'
NoMethodError: undefined method `is_enable'for #<0x15d114ce>
hbase(main):033:0> is_enabled 'test'
true
0 row(s) in 0.1180 seconds
hbase(main):034:0> is_disabled 'test'
false
0 row(s) in 0.0190 seconds
disableを使用してテーブルを無効にする
hbase(main):001:0> disable 'test'
0 row(s) in 4.7170 seconds
hbase(main):002:0> is_disabled 'test'
true
0 row(s) in 0.0210 seconds
enbaleを使用してテーブルを有効にする
hbase(main):003:0> enable 'test'
0 row(s) in 2.2910 seconds
hbase(main):004:0> is_enabled 'test'
true
0 row(s) in 0.0180 seconds
fam 1というcolumnfamilyを削除します.
hbase(main):007:0> alter'test',{NAME=>'fam1',METHOD=>'delete'}
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 2.1980 seconds
hbase(main):008:0> desc 'test'
Table test is ENABLED
test
COLUMN FAMILIES DESCRIPTION
{NAME => 'fam2', BLOOMFILTER => 'ROW',VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE',DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRE
SSION => 'NONE', MIN_VERSIONS => '0',BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE =>'0'}
1 row(s) in 0.0350 seconds
テーブルデータを空にします.
hbase(main):009:0> truncate 'test'
Truncating 'test' table (it may take awhile):
-Disabling table...
-Truncating table...
0 row(s) in 3.6540 seconds
hbase(main):010:0> scan 'test'
ROW COLUMN+CELL
0 row(s) in 0.0460 seconds
テーブルを削除するには、dropテーブルの前にテーブルをdisableする必要があります.
hbase(main):011:0> disable 'test'
0 row(s) in 2.2680 seconds
hbase(main):012:0> drop 'test'
0 row(s) in 1.2680 seconds
hbase(main):014:0> list 'test'
TABLE
0 row(s) in 0.0110 seconds
=> []
転載先:https://blog.51cto.com/mjal01/1963443