HBase常用命令(超全超详细)
目录
连接HBase
连接HBase并查看版本
帮助命令
查看服务器状态
查看当前数据库中有哪些表
命名空间
列出所有命名空间
新建命名空间
删除命名空间
修改命名空间
创建表
列举表
表结构
查询表
添加数据
更新数据
检查插入情况.
表扫描
按照条件查询
获取某一行
统计表数据行数
删除数据
禁用表
禁用表
清空表
启用表
启用表
变更表信息
添加列簇
删除列簇
修改版本信息
删除表
用户权限
退出
文档: https://hbase.apache.org/book.html#getting_started
本节我们将向您展示如何使用 hbase shell CLI 在 HBase 中创建表、在表中插入行、对表执行放置和扫描操作、启用或禁用表以及启动和停止 HBase。
主要讲述了HBase的CRUD等基本DDL和DML操作。
注意:HBase Shell 中的删除键没用,要用【Ctrl+Backspace】,每个命令之后不需要分号(;)结束。
连接HBase
连接HBase并查看版本
$ ./bin/hbase shell HBase Shell; enter 'help' for list of supported commands. Type "exit" to leave the HBase Shell Version: 0.90.0, r1001068, Fri Sep 24 13:55:42 PDT 2010 hbase(main):001:0> version
帮助命令
所有的帮助
hbase(main):001:0> help
指定命令的帮助
hbase(main):001:0> help 'create'
输入 help 然后 可以看到一列shell命令。这里的帮助很详细,要注意的是表名,行和列需要加引号。
查看服务器状态
hbase(main):001:0> status
查看当前数据库中有哪些表
hbase(main):002:0> list
命名空间
列出所有命名空间
hbase(main):002:0> list_namespace
新建命名空间
hbase(main):002:0> create_namespace 'ns1'
删除命名空间
hbase(main):002:0> drop_namespace 'ns1'
该命名空间必须为空,否则系统不让删除。
修改命名空间
hbase> alter_namespace 'ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}
创建表
创建一个名为 test 的表,这个表只有一个 列族 为 cf。可以列出所有的表来检查创建情况,然后插入些值。
hbase(main):003:0> create 'test', 'cf' 0 row(s) in 1.2200 seconds hbase(main):003:0> list 'table' test 1 row(s) in 0.0550 seconds hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1' 0 row(s) in 0.0560 seconds hbase(main):005:0> put 'test', 'row2', 'cf:b', 'value2' 0 row(s) in 0.0370 seconds hbase(main):006:0> put 'test', 'row3', 'cf:c', 'value3' 0 row(s) in 0.0450 seconds
以上我们分别插入了3行。第一个行key为row1, 列为 cf:a, 值是 value1。HBase中的列是由 列族前缀和列的名字组成的,以冒号间隔。例如这一行的列名就是a.
列举表
列出指定命名空间下的所有表
hbase> list_namespace_tables 'ns1'
列出所有表
hbase> list
表结构
查看表里面有哪些字段。
hbase(main):003:0> describe 'test'
Table test is ENABLED
test
COLUMN FAMILIES DESCRIPTION
{NAME => 'cf', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE =>
'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 'f
alse', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLOCKSIZE
=> '65536'}
1 row(s)
Took 0.9998 seconds
查询表
查询表是否存在
语法:exists ‘table_name’
hbase(main):005:0> exists 'test'
添加数据
hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1' 0 row(s) in 0.0850 seconds hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2' 0 row(s) in 0.0110 seconds hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3' 0 row(s) in 0.0100 seconds
更新数据
hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value4' 0 row(s) in 0.0100 seconds
表查询
语法:scan ‘table_name’,{COLUMNS => [ ‘column_family:column’,… ], LIMIT => num}
全表Scan操作如下:
hbase(main):007:0> scan 'test' ROW COLUMN+CELL row1 column=cf:a, timestamp=1288380727188, value=value1 row2 column=cf:b, timestamp=1288380738440, value=value2 row3 column=cf:c, timestamp=1288380747365, value=value3 3 row(s) in 0.0590 seconds
扫描表scan,cf:a的前2条数据
hbase(main):004:0> scan 'test',{COLUMNS => 'cf:a',LIMIT => 2}
按照条件查询
查询前几条数据
scan 'test',{LIMIT=>5}
#查询从指定行到结束行
hbase(main):009:0> scan 'test',{STARTROW => '1001', STOPROW => '1001'}
#查询从指定行开始五条
hbase(main):010:0> scan 'test',{STARTROW => '1001',LIMIT=>5}
获取某一行
get一行,操作如下
hbase(main):008:0> get 'test', 'row1' COLUMN CELL cf:a timestamp=1288380727188, value=value1 1 row(s) in 0.0400 seconds
查看“指定行”或“指定列族:列”的数据
hbase(main):008:0> get 'test', 'row1','cf:a' COLUMN CELL cf:a timestamp=1288380727188, value=value1 1 row(s) in 0.0400 seconds
通过versions来获取多个版本的数据
hbase(main):019:0> get 'test','1001',{COLUMN=>'cf:a',VERSIONS => 2}
统计表数据行数
hbase(main):021:0> count 'test'
删除数据
- 删除某rowkey的全部数据:
hbase(main):016:0> deleteall 'test','1001'
- 删除某rowkey的某一列数据:
hbase(main):008:0> delete 'test', 'row1','cf:a'
禁用表
判断表是否禁用
语法:is_disabled ‘table_name’
示例:判断test表是否禁用
hbase(main):026:0> is_disabled 'test'
禁用表
hbase(main):012:0> disable 'test' 0 row(s) in 1.0930 seconds
清空表
hbase(main):018:0> truncate 'test' 提示:清空表的操作顺序为先disable,然后再truncate。
启用表
判断表是否启用
语法:is_enabled ‘table_name’
示例:判断test表是否启用
hbase(main):005:0> is_enabled 'test'
启用表
hbase(main):009:0> enable 'test' 0 row(s) in 0.1770 seconds
变更表信息
添加列簇
命令格式:alter ‘表名’,‘列簇名’
alter 'test','cf1'
删除列簇
语法:alter ‘table_name’, {NAME => ‘column_family1’, METHOD => ‘delete’}
示例:将表test中的列簇cf删除
hbase(main):016:0> alter 'test',{NAME => 'cf',METHOD => 'delete'}
修改版本信息
将cf列族中的数据存放3个版本:
hbase(main):022:0> alter 'test',{NAME=>'cf',VERSIONS=>3}
hbase(main):022:0> get 'test','1001',{COLUMN=>'cf:a',VERSIONS=>3}
查看是否处理成功:
hbase(main):017:0> describe 'test'
删除表
disable 再 drop 这张表,可以清除你刚刚的操作
hbase(main):013:0> drop 'test' 0 row(s) in 0.0770 seconds
用户权限
user_permission ['表名'..] grant '用户名' ,'RWXCA' R - represents read privilege. W - represents write privilege. X - represents execute privilege. C - represents create privilege. A - represents admin privilege.
退出Shell
hbase(main):014:0> exit
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/fc98ab0022.html

