标签:表数 lib cache 表数据 dem ring HERE dir get
在你安装的随意台服务器节点上,执行命令:hbase shell,会进入到你的 hbase shell 客 户端
[admin@node21 ~]$ hbase shell SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/module/hbase-1.2.6/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/module/hadoop-2.7.6/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] HBase Shell; enter ‘help<RETURN>‘ for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell Version 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017
hbase(main):001:0>
说明,先看一下提示。其实是不是有一句很重要的话:
HBase Shell; enter ‘help<RETURN>‘ for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell
讲述了怎么获得帮助,怎么退出客户端
help 获取帮助
help:获取所有命令提示
help "dml" :获取一组命令的提示
help "put" :获取一个单独命令的提示帮助
exit 退出 hbase shell 客户端
这些是关于HBase在表中操作的命令。
关于表的操作包括(创建create,查看表列表list。查看表的详细信息desc,删除表drop,清空表truncate,修改表的定义alter)
可以输入以下命令进行查看帮助命令
hbase(main):001:0> help ‘create‘
Creates a table. Pass a table name, and a set of column family specifications (at least one), and, optionally, table configuration. Column specification can be a simple string (name), or a dictionary (dictionaries are described below in main help output), necessarily including NAME attribute. Examples: Create a table with namespace=ns1 and table qualifier=t1 hbase> create ‘ns1:t1‘, {NAME => ‘f1‘, VERSIONS => 5} Create a table with namespace=default and table qualifier=t1 hbase> create ‘t1‘, {NAME => ‘f1‘}, {NAME => ‘f2‘}, {NAME => ‘f3‘} hbase> # The above in shorthand would be the following: hbase> create ‘t1‘, ‘f1‘, ‘f2‘, ‘f3‘ hbase> create ‘t1‘, {NAME => ‘f1‘, VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true} hbase> create ‘t1‘, {NAME => ‘f1‘, CONFIGURATION => {‘hbase.hstore.blockingStoreFiles‘ => ‘10‘}} Table configuration options can be put at the end. Examples: hbase> create ‘ns1:t1‘, ‘f1‘, SPLITS => [‘10‘, ‘20‘, ‘30‘, ‘40‘] hbase> create ‘t1‘, ‘f1‘, SPLITS => [‘10‘, ‘20‘, ‘30‘, ‘40‘] hbase> create ‘t1‘, ‘f1‘, SPLITS_FILE => ‘splits.txt‘, OWNER => ‘johndoe‘ hbase> create ‘t1‘, {NAME => ‘f1‘, VERSIONS => 5}, METADATA => { ‘mykey‘ => ‘myvalue‘ } hbase> # Optionally pre-split the table into NUMREGIONS, using hbase> # SPLITALGO ("HexStringSplit", "UniformSplit" or classname) hbase> create ‘t1‘, ‘f1‘, {NUMREGIONS => 15, SPLITALGO => ‘HexStringSplit‘} hbase> create ‘t1‘, ‘f1‘, {NUMREGIONS => 15, SPLITALGO => ‘HexStringSplit‘, REGION_REPLICATION => 2, CONFIGURATION => {‘hbase.hregion.scan.loadColumnFamiliesOnDemand ‘ => ‘true‘}} hbase> create ‘t1‘, {NAME => ‘f1‘, DFS_REPLICATION => 1} You can also keep around a reference to the created table: hbase> t1 = create ‘t1‘, ‘f1‘ Which gives you a reference to the table named ‘t1‘, on which you can then call methods. hbase(main):002 >
可以看到其中一条提示
hbase> create ‘t1‘, {NAME => ‘f1‘}, {NAME => ‘f2‘}, {NAME => ‘f3‘}
其中t1是表名,f1,f2,f3是列簇的名,如:
hbase(main):002:0> create ‘myHbase‘,{NAME => ‘myCard‘,VERSIONS => 5} 0 row(s) in 3.1270 seconds => Hbase::Table - myHbase hbase(main):003:0>
创建了一个名为myHbase的表,表里面有1个列簇,名为myCard,保留5个版本信息
可以输入以下命令进行查看帮助命令
hbase(main):003:0> help ‘list‘ List all tables in hbase. Optional regular expression parameter could be used to filter the output. Examples: hbase> list hbase> list ‘abc.*‘ hbase> list ‘ns:abc.*‘ hbase> list ‘ns:.*‘ hbase(main):004:0>
直接输入list进行查看
hbase(main):004:0> list TABLE myHbase 1 row(s) in 0.0650 seconds => ["myHbase"] hbase(main):005:0>
只有一条结果,就是刚刚创建的表myHbase
一个大括号,就相当于一个列簇。
hbase(main):006:0> desc ‘myHbase‘ Table myHbase is ENABLED myHbase COLUMN FAMILIES DESCRIPTION {NAME => ‘myCard‘, BLOOMFILTER => ‘ROW‘, VERSIONS => ‘5‘, IN_MEMORY => ‘false‘, KEEP_DELETED_CELLS => ‘FALSE‘, D ATA_BLOCK_ENCODING => ‘NONE‘, TTL => ‘FOREVER‘, COMPRESSION => ‘NONE‘, MIN_VERSIONS => ‘0‘, BLOCKCACHE => ‘true‘ , BLOCKSIZE => ‘65536‘, REPLICATION_SCOPE => ‘0‘} 1 row(s) in 0.2160 seconds hbase(main):007:0>
hbase(main):007:0> alter ‘myHbase‘, NAME => ‘myInfo‘
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 2.0690 seconds
hbase(main):008:0> desc ‘myHbase‘
Table myHbase is ENABLED
myHbase
COLUMN FAMILIES DESCRIPTION
{NAME => ‘myCard‘, BLOOMFILTER => ‘ROW‘, VERSIONS => ‘5‘, IN_MEMORY => ‘false‘, KEEP_DELETED_CELLS => ‘FALSE‘, D
ATA_BLOCK_ENCODING => ‘NONE‘, TTL => ‘FOREVER‘, COMPRESSION => ‘NONE‘, MIN_VERSIONS => ‘0‘, BLOCKCACHE => ‘true‘
, BLOCKSIZE => ‘65536‘, REPLICATION_SCOPE => ‘0‘}
{NAME => ‘myInfo‘, BLOOMFILTER => ‘ROW‘, VERSIONS => ‘1‘, IN_MEMORY => ‘false‘, KEEP_DELETED_CELLS => ‘FALSE‘, D
ATA_BLOCK_ENCODING => ‘NONE‘, TTL => ‘FOREVER‘, COMPRESSION => ‘NONE‘, MIN_VERSIONS => ‘0‘, BLOCKCACHE => ‘true‘
, BLOCKSIZE => ‘65536‘, REPLICATION_SCOPE => ‘0‘}
2 row(s) in 0.0420 seconds
hbase(main):009:0>
hbase(main):009:0> alter ‘myHbase‘, NAME => ‘myCard‘, METHOD => ‘delete‘ Updating all regions with the new schema... 1/1 regions updated. Done. 0 row(s) in 2.1920 seconds hbase(main):010:0> desc ‘myHbase‘ Table myHbase is ENABLED myHbase COLUMN FAMILIES DESCRIPTION {NAME => ‘myInfo‘, BLOOMFILTER => ‘ROW‘, VERSIONS => ‘1‘, IN_MEMORY => ‘false‘, KEEP_DELETED_CELLS => ‘FALSE‘, D ATA_BLOCK_ENCODING => ‘NONE‘, TTL => ‘FOREVER‘, COMPRESSION => ‘NONE‘, MIN_VERSIONS => ‘0‘, BLOCKCACHE => ‘true‘ , BLOCKSIZE => ‘65536‘, REPLICATION_SCOPE => ‘0‘} 1 row(s) in 0.0290 seconds hbase(main):011:0>
删除一个列簇也可以执行以下命令
alter ‘myHbase‘, ‘delete‘ => ‘myCard‘
hbase(main):011:0> alter ‘myHbase‘, {NAME => ‘hehe‘}, {NAME => ‘myInfo‘, METHOD => ‘delete‘} Updating all regions with the new schema... 1/1 regions updated. Done. Updating all regions with the new schema... 1/1 regions updated. Done. 0 row(s) in 3.8260 seconds hbase(main):012:0> desc ‘myHbase‘ Table myHbase is ENABLED myHbase COLUMN FAMILIES DESCRIPTION {NAME => ‘hehe‘, BLOOMFILTER => ‘ROW‘, VERSIONS => ‘1‘, IN_MEMORY => ‘false‘, KEEP_DELETED_CELLS => ‘FALSE‘, DAT A_BLOCK_ENCODING => ‘NONE‘, TTL => ‘FOREVER‘, COMPRESSION => ‘NONE‘, MIN_VERSIONS => ‘0‘, BLOCKCACHE => ‘true‘, BLOCKSIZE => ‘65536‘, REPLICATION_SCOPE => ‘0‘} 1 row(s) in 0.0410 seconds hbase(main):013:0>
hbase(main):013:0> truncate ‘myHbase‘ Truncating ‘myHbase‘ table (it may take a while): - Disabling table... - Truncating table... 0 row(s) in 3.6760 seconds hbase(main):014:0>
hbase(main):014:0> drop ‘myHbase‘ ERROR: Table myHbase is enabled. Disable it first. Here is some help for this command: Drop the named table. Table must first be disabled: hbase> drop ‘t1‘ hbase> drop ‘ns1:t1‘ hbase(main):015:0>
直接删除表会报错,根据提示需要先停用表
hbase(main):015:0> disable ‘myHbase‘ 0 row(s) in 2.2620 seconds hbase(main):016:0> drop ‘myHbase‘ 0 row(s) in 1.2970 seconds hbase(main):017:0> list TABLE 0 row(s) in 0.0110 seconds => [] hbase(main):018:0>
关于数据的操作(增put,删delete,查get + scan, 改==变相的增加)
创建 user 表,包含 info、data 两个列簇
hbase(main):018:0> create ‘user_info‘,{NAME=>‘base_info‘,VERSIONS=>3 },{NAME=>‘extra_info‘,VERSIONS=>1 } 0 row(s) in 4.2670 seconds => Hbase::Table - user_info hbase(main):019:0>
查看帮助,需要传入表名,rowkey,列簇名、值等
hbase(main):019:0> help ‘put‘
Put a cell ‘value‘ at specified table/row/column and optionally
timestamp coordinates. To put a cell value into table ‘ns1:t1‘ or ‘t1‘
at row ‘r1‘ under column ‘c1‘ marked with the time ‘ts1‘, do:
hbase> put ‘ns1:t1‘, ‘r1‘, ‘c1‘, ‘value‘
hbase> put ‘t1‘, ‘r1‘, ‘c1‘, ‘value‘
hbase> put ‘t1‘, ‘r1‘, ‘c1‘, ‘value‘, ts1
hbase> put ‘t1‘, ‘r1‘, ‘c1‘, ‘value‘, {ATTRIBUTES=>{‘mykey‘=>‘myvalue‘}}
hbase> put ‘t1‘, ‘r1‘, ‘c1‘, ‘value‘, ts1, {ATTRIBUTES=>{‘mykey‘=>‘myvalue‘}}
hbase> put ‘t1‘, ‘r1‘, ‘c1‘, ‘value‘, ts1, {VISIBILITY=>‘PRIVATE|SECRET‘}
The same commands also can be run on a table reference. Suppose you had a reference
t to table ‘t1‘, the corresponding command would be:
hbase> t.put ‘r1‘, ‘c1‘, ‘value‘, ts1, {ATTRIBUTES=>{‘mykey‘=>‘myvalue‘}}
hbase(main):020:0>
向 user 表中插入信息,row key 为 user0001,列簇 base_info 中添加 name 列标示符,值为 zhangsan1
hbase(main):020:0> put ‘user_info‘, ‘user0001‘, ‘base_info:name‘, ‘zhangsan1‘ 0 row(s) in 0.2900 seconds hbase(main):021:0>
此处可以多添加几条数据
put ‘user_info‘, ‘zhangsan_20150701_0001‘, ‘base_info:name‘, ‘zhangsan1‘ put ‘user_info‘, ‘zhangsan_20150701_0002‘, ‘base_info:name‘, ‘zhangsan2‘ put ‘user_info‘, ‘zhangsan_20150701_0003‘, ‘base_info:name‘, ‘zhangsan3‘ put ‘user_info‘, ‘zhangsan_20150701_0004‘, ‘base_info:name‘, ‘zhangsan4‘ put ‘user_info‘, ‘zhangsan_20150701_0005‘, ‘base_info:name‘, ‘zhangsan5‘ put ‘user_info‘, ‘zhangsan_20150701_0006‘, ‘base_info:name‘, ‘zhangsan6‘ put ‘user_info‘, ‘zhangsan_20150701_0007‘, ‘base_info:name‘, ‘zhangsan7‘ put ‘user_info‘, ‘zhangsan_20150701_0008‘, ‘base_info:name‘, ‘zhangsan8‘ put ‘user_info‘, ‘zhangsan_20150701_0001‘, ‘base_info:age‘, ‘21‘ put ‘user_info‘, ‘zhangsan_20150701_0002‘, ‘base_info:age‘, ‘22‘ put ‘user_info‘, ‘zhangsan_20150701_0003‘, ‘base_info:age‘, ‘23‘ put ‘user_info‘, ‘zhangsan_20150701_0004‘, ‘base_info:age‘, ‘24‘ put ‘user_info‘, ‘zhangsan_20150701_0005‘, ‘base_info:age‘, ‘25‘ put ‘user_info‘, ‘zhangsan_20150701_0006‘, ‘base_info:age‘, ‘26‘ put ‘user_info‘, ‘zhangsan_20150701_0007‘, ‘base_info:age‘, ‘27‘ put ‘user_info‘, ‘zhangsan_20150701_0008‘, ‘base_info:age‘, ‘28‘ put ‘user_info‘, ‘zhangsan_20150701_0001‘, ‘extra_info:Hobbies‘, ‘music‘ put ‘user_info‘, ‘zhangsan_20150701_0002‘, ‘extra_info:Hobbies‘, ‘sport‘ put ‘user_info‘, ‘zhangsan_20150701_0003‘, ‘extra_info:Hobbies‘, ‘music‘ put ‘user_info‘, ‘zhangsan_20150701_0004‘, ‘extra_info:Hobbies‘, ‘sport‘ put ‘user_info‘, ‘zhangsan_20150701_0005‘, ‘extra_info:Hobbies‘, ‘music‘ put ‘user_info‘, ‘zhangsan_20150701_0006‘, ‘extra_info:Hobbies‘, ‘sport‘ put ‘user_info‘, ‘zhangsan_20150701_0007‘, ‘extra_info:Hobbies‘, ‘music‘ put ‘user_info‘, ‘baiyc_20150716_0001‘, ‘base_info:name‘, ‘baiyc1‘ put ‘user_info‘, ‘baiyc_20150716_0002‘, ‘base_info:name‘, ‘baiyc2‘ put ‘user_info‘, ‘baiyc_20150716_0003‘, ‘base_info:name‘, ‘baiyc3‘ put ‘user_info‘, ‘baiyc_20150716_0004‘, ‘base_info:name‘, ‘baiyc4‘ put ‘user_info‘, ‘baiyc_20150716_0005‘, ‘base_info:name‘, ‘baiyc5‘ put ‘user_info‘, ‘baiyc_20150716_0006‘, ‘base_info:name‘, ‘baiyc6‘ put ‘user_info‘, ‘baiyc_20150716_0007‘, ‘base_info:name‘, ‘baiyc7‘ put ‘user_info‘, ‘baiyc_20150716_0008‘, ‘base_info:name‘, ‘baiyc8‘ put ‘user_info‘, ‘baiyc_20150716_0001‘, ‘base_info:age‘, ‘21‘ put ‘user_info‘, ‘baiyc_20150716_0002‘, ‘base_info:age‘, ‘22‘ put ‘user_info‘, ‘baiyc_20150716_0003‘, ‘base_info:age‘, ‘23‘ put ‘user_info‘, ‘baiyc_20150716_0004‘, ‘base_info:age‘, ‘24‘ put ‘user_info‘, ‘baiyc_20150716_0005‘, ‘base_info:age‘, ‘25‘ put ‘user_info‘, ‘baiyc_20150716_0006‘, ‘base_info:age‘, ‘26‘ put ‘user_info‘, ‘baiyc_20150716_0007‘, ‘base_info:age‘, ‘27‘ put ‘user_info‘, ‘baiyc_20150716_0008‘, ‘base_info:age‘, ‘28‘ put ‘user_info‘, ‘baiyc_20150716_0001‘, ‘extra_info:Hobbies‘, ‘music‘ put ‘user_info‘, ‘baiyc_20150716_0002‘, ‘extra_info:Hobbies‘, ‘sport‘ put ‘user_info‘, ‘baiyc_20150716_0003‘, ‘extra_info:Hobbies‘, ‘music‘ put ‘user_info‘, ‘baiyc_20150716_0004‘, ‘extra_info:Hobbies‘, ‘sport‘ put ‘user_info‘, ‘baiyc_20150716_0005‘, ‘extra_info:Hobbies‘, ‘music‘ put ‘user_info‘, ‘baiyc_20150716_0006‘, ‘extra_info:Hobbies‘, ‘sport‘ put ‘user_info‘, ‘baiyc_20150716_0007‘, ‘extra_info:Hobbies‘, ‘music‘ put ‘user_info‘, ‘baiyc_20150716_0008‘, ‘extra_info:Hobbies‘, ‘sport‘
获取 user 表中 row key 为 user0001 的所有信息
hbase(main):022:0> get ‘user_info‘, ‘user0001‘ COLUMN CELL base_info:name timestamp=1522320801670, value=zhangsan1 1 row(s) in 0.1310 seconds hbase(main):023:0>
获取user表中row key为rk0001,info列簇的所有信息
hbase(main):025:0> get ‘user_info‘, ‘rk0001‘, ‘base_info‘ COLUMN CELL base_info:name timestamp=1522321247732, value=zhangsan 1 row(s) in 0.0320 seconds hbase(main):026:0>
查询user_info表中的所有信息
hbase(main):026:0> scan ‘user_info‘ ROW COLUMN+CELL rk0001 column=base_info:name, timestamp=1522321247732, value=zhangsan user0001 column=base_info:name, timestamp=1522320801670, value=zhangsan1 2 row(s) in 0.0970 seconds hbase(main):027:0>
查询user_info表中列簇为base_info的信息
hbase(main):027:0> scan ‘user_info‘, {COLUMNS => ‘base_info‘} ROW COLUMN+CELL rk0001 column=base_info:name, timestamp=1522321247732, value=zhangsan user0001 column=base_info:name, timestamp=1522320801670, value=zhangsan1 2 row(s) in 0.0620 seconds hbase(main):028:0>
删除user_info表row key为rk0001,列标示符为base_info:name的数据
hbase(main):028:0> delete ‘user_info‘, ‘rk0001‘, ‘base_info:name‘ 0 row(s) in 0.0780 seconds hbase(main):029:0> scan ‘user_info‘, {COLUMNS => ‘base_info‘} ROW COLUMN+CELL user0001 column=base_info:name, timestamp=1522320801670, value=zhangsan1 1 row(s) in 0.0530 seconds hbase(main):030:0>
删除user_info表row key为rk0001的全部数据:
hbase(main):030:0> delete ‘user_info‘, ‘rk0001‘
HBase常用命令status, version, table_help和whoami。本章将介绍了这些命令。
命令返回包括在系统上运行的服务器的细节和系统的状态。它的语法如下:
hbase(main):009:0> status
如果执行这个命令,它会返回下面的输出
hbase(main):009:0> status 1 active master, 1 backup masters, 3 servers, 0 dead, 1.3333 average load
该命令返回HBase系统使用的版本。它的语法如下:
hbase(main):010:0> version
如果执行这个命令,它会返回下面的输出。
hbase(main):009:0> version 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017
此命令将引导如何使用表引用的命令。下面给出的是使用这个命令的语法。
hbase(main):02:0> table_help
当使用此命令时,它显示帮助主题表相关的命令。
hbase(main):002: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 how to use each of these commands. However, as of 0.96, you can also get a reference to a table, on which you can invoke commands. For instance, you can get create a table and keep around a reference to it via: hbase> t = create ‘t‘, ‘cf‘ Or, if you have already created the table, you can get a reference to it: hbase> t = get_table ‘t‘ You can do things like call ‘put‘ on the table: hbase> t.put ‘r‘, ‘cf:q‘, ‘v‘ which puts a row ‘r‘ with column family ‘cf‘, qualifier ‘q‘ and value ‘v‘ into table t. To read the data out, you can scan the table: hbase> t.scan which will read all the rows in table ‘t‘. Essentially, any command that takes a table name can also be done via table reference. Other commands include things like: get, delete, deleteall, get_all_columns, get_counter, count, incr. These functions, along with the standard JRuby object methods are also available via tab completion. For more information on how to use each of these commands, you can also just type: hbase> t.help ‘scan‘ which will output more information on how to use that command. You can also do general admin actions directly on a table; things like enable, disable, flush and drop just by typing: hbase> t.enable hbase> t.flush hbase> t.disable hbase> t.drop Note that after dropping a table, your reference to it becomes useless and further usage is undefined (and not recommended).
该命令返回HBase用户详细信息。如果执行这个命令,返回当前HBase用户,如下图所示
hbase(main):008:0> whoami
hbase(main):008:0> whoami admin (auth:SIMPLE) groups: admin
标签:表数 lib cache 表数据 dem ring HERE dir get
原文地址:https://www.cnblogs.com/frankdeng/p/9310204.html