Hbase shell常見語法

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'
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章