HBase Shell命令总结

HBase Shell命令总结, 便于查阅



namespace

表名ns:table1中冒号前面的就是namespace, 它可以在逻辑上隔离数据, 也可以对不同的namespace进行不同授权
HBase系统默认定义了两个缺省的namespace

  • hbase: 系统命名空间, 用于包含hbase的内部表, 包括namespace和meta表
  • default: 用户建表时未指定namespace的表都创建在此

常用命令

下面是对于namespace的一些操作

  • 创建: create_namespace 'ns'
  • 删除: drop_namespace 'ns'
  • 查看所有: list_namespace
  • 查看某个: describe_namespace 'ns'
  • 查看namespace下的表: list_namespace_tables 'ns'
  • 在namespace下创建表: create 'ns:testtable', 'fm1'
  • 修改属性: alter_namespace 'ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}

基于namespace的授权操作

具备Create权限的namespace Admin可以对表创建和删除、生成和恢复快照
具备Admin权限的namespace Admin可以对表splits或major compactions
RWXCA

  • 授权userA用户对test_ns的写权限: grant 'userA' 'W' '@test_ns'
  • 回收userA用户对test_ns的所有权限: revoke 'userA''@test_ns'

通过hbase-site.xml在HBase中启用授权机制:

<property>
     <name>hbase.security.authorization</name>
     <value>true</value>
</property>
<property>
     <name>hbase.coprocessor.master.classes</name>
     <value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
     <name>hbase.coprocessor.region.classes</name>
     <value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController</value>
</property>

shell 命令总结表

在hbase shell中直接敲命令会给出说明,并有很多例子, 一看就知道怎么用了

shell 命令 描述
list 查看所有表
describe 描述表
count 统计表中行数
create 创建表
alter 修改列族模式
drop 删除表
exists 测试表是否存在
disable 使表无效
enable 使表有效
put 插入数据
incr 增加表、行或列的值
get 查看数据
scan 查看批量数据
delete 删除表行列对应的值
deleteall 删除指定行的所有元素
shutdown 关闭HBase集群(不同于exit)
truncate 重新创建指定表
tools 列出HBase支持的工具
status 返回HBase集群状态
version 查看hbase版本
exit 推出HBase shell