HBase的基本操作命令

1. 基本操作命令

命令 含義 實例
status 顯示狀態 status ‘hadoop1’
whoami 顯示HBase當前用戶 whoami
list 顯示當前所有表 list
count 統計指定表的記錄數 count ‘user’
describe 顯示錶的結構信息 describe ‘user’
exists 檢查表是否存在 exists ‘user’
is_enabled/is_disabled 檢查表是否啓用/禁用 is_enabled ‘user’
alter 改變表或列族的模式 alter ‘user’, NAME => ‘CF2’, VERSIONS => 2
disable/enable 啓用/禁用一張表 disable ‘user’
drop 刪除表 drop ‘user’
truncate 禁用表 trancate ‘user’
  • 打開HBase shell

    cd /export/servers/hbase-2.0.0
    bin/hbase shell
    
  • 創建表,添加數據

    # 創建表
    create 'user', 'info', 'data'
    
    # 向user表中插入信息,row key爲rk0001,列族info中添加name列標示符,值爲zhangsan
    put 'user', 'rk0001', 'info:name', 'zhangsan'
    # 向user表中插入信息,row key爲rk0001,列族info中添加gender列標示符,值爲female
    put 'user', 'rk0001', 'info:gender', 'female'
    # 向user表中插入信息,row key爲rk0001,列族info中添加age列標示符,值爲20
    put 'user', 'rk0001', 'info:age', 20
    # 向user表中插入信息,row key爲rk0001,列族data中添加pic列標示符,值爲picture
    put 'user', 'rk0001', 'data:pic', 'picture'
    
  • 統計有多少行數據

    count 'user'
    

    在這裏插入圖片描述

2. 查詢操作

  • 通過get查詢(get rowkey)

    # 獲取user表中row key爲rk0001的所有信息
    get 'user', 'rk0001'
    

    在這裏插入圖片描述

    # 獲取user表中row key爲rk0001,info列族的信息
    get 'user', 'rk0001', 'info'
    

    在這裏插入圖片描述

    # 獲取user表中row key爲rk0001,info列族的name、age列標示符的信息
    get 'user', 'rk0001', 'info:name', 'info:age'
    

    在這裏插入圖片描述

    # 獲取user表中row key爲rk0001,info、data列族的信息, 兩種寫法
    get 'user', 'rk0001', 'info', 'data'
    get 'user', 'rk0001', {COLUMN => ['info', 'data']}
    

    在這裏插入圖片描述

    #獲取user表中row key爲rk0001,cell的值爲zhangsan的信息
    get 'user', 'rk0001', {FILTER => "ValueFilter(=, 'binary:zhangsan')"}
    

    在這裏插入圖片描述

    # 獲取user表中row key爲rk0001,列標示符中含有a的信息
    get 'user', 'rk0001', {FILTER => "(QualifierFilter(=,'substring:a'))"}
    

    在這裏插入圖片描述

  • 通過scan查詢(scan 條件)

    get不能得到表中的全部信息,要獲取表中的全部信息需要通過scan

    # 查詢user表中的所有信息
    scan 'user'
    

    在這裏插入圖片描述

    # 查詢user表中列族爲info的信息
    scan 'user', {COLUMNS => 'info'}
    

    在這裏插入圖片描述

    # 查詢user表中列族爲info和data的信息
    scan 'user', {COLUMNS => ['info', 'data']}
    # 查詢user表中列族爲info列爲name和列族爲data列爲pic的信息
    scan 'user', {COLUMNS => ['info:name', 'data:pic']}
    

    在這裏插入圖片描述

    # 查詢user表中列族爲info、列標示符爲name的信息,並且版本最新的5個
    scan 'user', {COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"}
    
    # 查詢user表中列族爲info,rk範圍是[rk0001, rk0003)的數據
    scan 'user', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0003'}
    
    # 查詢user表中row key以rk字符開頭的
    scan 'user',{FILTER=>"PrefixFilter('rk')"}
    
    # 查詢user表中指定範圍的數據
    scan 'user', {TIMERANGE => [1582873430274, 1582873430774]}
    

    在這裏插入圖片描述

3. 更新操作

  • 更新數據:操作與插入相同

  • 更新版本

    # 將user表的f1列族版本號改爲5
    alter 'user', NAME => 'info', VERSIONS => 5
    

4. 刪除操作

  • 指定rowkey以及列名進行刪除

    # 刪除user表row key爲rk0001,列標示符爲info:name的數據
    delete 'user', 'rk0001', 'info:name'
    
    scan 'user'
    

    在這裏插入圖片描述

  • 指定rowkey,列名以及字段值進行刪除

    # 刪除user表row key爲rk0001,列標示符爲data:pic,timestamp爲1392383705316的數據
    delete 'user', 'rk0001', 'data:pic', 1582873430274
    
  • 刪除一個列族

    alter 'user', NAME => 'info', METHOD => 'delete' 
    或 alter 'user', 'delete' => 'info'
    
  • 清空表數據

    truncate 'user'
    scan 'user'
    

    在這裏插入圖片描述

  • 刪除表

    # 首先需要先讓該表爲disable狀態
    disable 'user'
    # 刪除表
    drop 'user'
    
    list
    

    在這裏插入圖片描述

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