Hbase shell常见语法

连接到hbase shell
hbase shell位于Hbase目录下的/bin目录下,如果没有配置环境变量,可以使用./bin/hbase shell

显示hbase sehll的帮助信息
help
注意:表名、行、列都必须用引号引起来

退出hbase shell客户端
quit

1. hbase-namespace
  • 使用create_namespace创建命名空间,可以同时指定属性

    hbase(main):001:0> create_namespace 'ns1'
    hbase(main):002:0> create_namespace 'ns1', {'propertyName'=>'propertyValue'}
    
  • 使用alter_namespace修改命名空间属性

    # 新增命名空间的属性值
    hbase(main):003:0> alter_namespace 'myns', {METHOD => 'set', 'propertyName' => 'propertyValue'}
    
    # 删除命名空间已经存在的属性值
    hbase(main):004:0> alter_namespace 'myns', {METHOD => 'unset', NAME => 'propertyName'}
    
  • 使用describe_namespace查看命名空间的描述信息

    hbase(main):005:0> describe_namespace 'myns'
    
  • 使用drop_namespace删除命名空间

    注意:这个namespacae必须为空,如果有表,不能被删除

    hbase(main):006:0> drop_namespace 'myns'
    
  • 使用list_namespace列出命名空间

    # 列出所有的命名空间
    hbase(main):007:0> list_namespace
    
    # 列出符合规范的命名空间:列出所有以my开头的命名空间
    hbase(main):008:0> list_namespace "my.*"
    
  • 使用list_namespace_tables列出命名空间中的表

    hbase(main):009:0> list_namespace_tables 'myns'
    
2. hbase-table

用如下的表进行示范,表名为emp,内容包括3个列簇(列族)(列簇和列族有相同意思,本人习惯称为列簇)

rowkey base_info extra_info address_info
  • 使用create创建一个表

    注意:创建表时,如果没有指定命名空间,则默认创建在default命名空间下

    ​ 在创建表时同时,必须至少指定一个列簇

    hbase(main):010:0> create 'emp', 'base_info'
    

    可以使用变量,指定创建表,在后面,如果使用到这张表,就可以直接使用变量名.去使用表的内容

    t.put/t.drop/t.enable

    hbase(main):011:0> t = create 'emp', 'base_info'
    
  • 使用list列出表的相关信息

    hbase(main):012:0> list 'emp'
    
  • 使用describe查看详细信息,包括默认的配置

    hbase(main):013:0> describe 'emp'
    
  • 使用alter修改表的相关信息

    修改列簇的信息

    hbase(main):014:0> alter 'emp', NAME => 'base_info', VERSIONS => 5
    hbase(main):015:0> describe 'emp'
    hbase(main):016:0> t.describe
    

    新增列簇

    hbase(main):017:0> alter 'emp', 'base_info', {NAME => 'extra_info', IN_MEMORY => true}, {NAME => 'address_info', VERSIONS => 5}
    

    删除列簇

    hbase(main):018:0> alter 'default:emp', NAME => 'base_info', METHOD => 'delete'
    hbase(main):019:0> alter 'default:emp', 'delete' => 'extra_info'
    
  • 使用put插入数据

    注意:put只能一次插入一个值

    第一个是在:emp表中的base_info列簇下的name属性增加值为zhangsan

    hbase(main):020:0> put 'emp', 'row1', 'base_info:name', 'zhangsan'
    hbase(main):021:0> put 'emp', 'row2', 'base_info:age', '23'
    hbase(main):022:0> put 'emp', 'row3', 'base_info:gender', 'male'
    
  • 使用scan查看数据

    注意:scan扫描表中的数据,可以限制范围

    hbase(main):023:0> scan 'emp'
    
  • 使用get获取指定行数据

    hbase(main):024:0> get 'emp', 'row1'
    
  • 使用disable禁用表

    如果想删除或者改变其设置,可以使用disable禁用,通过enable重新启用

    hbase(main):025:0> disable 'emp'
    hbase(main):026:0> enable 'emp'
    
  • 使用drop删除表

    删除表之前,一定要先使用disable禁用表

    hbase(main):027:0> disable 'emp'
    hbase(main):028:0> drop 'emp'