HBase的命令行操作




  • 啟動命令行客戶端

    bin/hbase shell

一般命令

status

  • 查看HBase的狀態, 如服務器數量

version

  • 查詢正在使用的HBase版本

whoami

  • 查詢用戶信息

NameSpace操作

  • HBase系統默認定義了兩個NameSpace

    1. hbase,系統內建表,包括namespace和meta表

      namespace:系統中的namespace信息,meta:系統中的region信息

    2. default,用戶建表時未指定namespace的表創建於此

create_namespace

  • 創建namespace

  • 在namespace下創建表

    create 'myspace:t1','f1','f2'

drop_namespace

  • 刪除namespace

list_namespace

  • 列出所有的namespace

describe_namespace

  • 查看namespace

list_namespace_tables

  • 查看namespace下的表

DDL數據定義語言

  • Data Definition Language

create

  • 創建表

    create 't1','f1'

    create 't1',{NAME=>'f1',VERSIONS=>3,TTL=>6000,BLOOMFILTER=>'ROWCOL'},{NAME=>'f2'}

    VERSIONS:存儲數據的最大保留版本數,存儲最近的n個版本,以前默認保留3個,現在默認保留1個

    TTL:數據的生命周期,默認FOREVER

    BLOOMFILTER:布隆過濾器,可選值:'ROW''(默認)、'ROWCOL'(row+colum[family+qualifier])、'NONE'

    create 't1', 'f1', SPLITS => ['10', '20', '30', '40']

desc

  • 查看表結構

drop

  • 刪除表(需先讓表為disable狀態)

    disable 't1'

    drop 't1'

alter

  • 變更表信息

    alter 't1',{NAME=>'f2',VERSIONS=>2}

    若NAME不存在則新建

list_region

  • 查看表的region信息

locate_region

  • 根據rowkey定位region信息

disable/enable

  • 禁用/啟用表

is_disable/is_enable

  • 獲取一個表的禁用/啟用狀態

exist

  • 查看表是否存在

show_filters

  • 顯示可用的查詢過濾器

DML數據操作語言

  • Data Manipulation Language

put

  • 插入、更改數據

put 't1','r001','f1:name','Aang'

  • 使用linux的輸入重定向功能,實現hbase shell客戶端的批量命令執行
#!bin/bash
exec /usr/apps/hbase-2.0.4/bin/hbase shell << EOF
put 't1','r001','f1:name','Aang'
put 't1','r001','f1:age','12'
put 't1','r001','f2:gender','male'
put 't1','r002','f1:name','Katara'
put 't1','r002','f1:age','14'
put 't1','r002','f2:gender','female'
put 't1','r003','f1:name','Sokka'
put 't1','r003','f1:age','15'
put 't1','r003','f2:gender','male'
EOF

scan

  • 查看表數據

    scan 't1'

    scan 't1',{COLUMNS=>'f1'}

    scan 't1',{COLUMNS=>'f1:name'}

    scan 't1',{ROWPREFIXFILTER=>'r'}

    scan 't1',{STARTROW=>'r001',STOPROW=>'r003'} --------- 左閉右開

    scan 't1',{STARTROW=>'r002'}

get

  • 查看指定行/列族/列的數據

    get 't1','r001'

    get 't1','r001','f1'

    get 't1','r001','f1:name'

delete

  • 刪除某列數據

    delete 't1','r001','f1:name'

deleteall

  • 刪除某行數據

    deleteall 't1','r001'

truncate

  • 清空表

    truncate 't1'

    會自動先disable,完成后再enable

    Truncating 't1' table (it may take a while):
    Disabling table...
    Truncating table...
    Took 2.2426 seconds

count

  • 統計行數

    count 't1'

運維管理操作

zk_dump

  • 查看集群及zookeeper的信息

    • master信息
    • regionserver信息
    • zookeeper quorum server信息

    hbase(main):021:0> zk_dump

    HBase is rooted at /hbase
    Active master address: linux01,16000,1567509883457
    Backup master addresses:
    Region server holding hbase:meta: linux02,16020,1567509891501
    Region servers:
    linux02,16020,1567509891501
    linux01,16020,1567509886020
    /hbase/replication:
    /hbase/replication/peers:
    /hbase/replication/rs:
    /hbase/replication/rs/linux01,16020,1567509886020:
    /hbase/replication/rs/linux02,16020,1567509891501:
    Quorum Server Statistics:
    linux01:2181
    Zookeeper version: 3.4.6-1569965, built on 02/20/2014 09:09 GMT
    Clients:
    /192.168.1.103:442050

    Latency min/avg/max: 0/4/82
    Received: 102
    Sent: 101
    Connections: 1
    Outstanding: 0
    Zxid: 0x31000000ba
    Mode: follower
    Node count: 55
    linux02:2181
    Zookeeper version: 3.4.6-1569965, built on 02/20/2014 09:09 GMT
    Clients:
    /192.168.1.103:438581
    /192.168.1.103:440980
    /192.168.1.104:351021
    /192.168.1.103:440961

    Latency min/avg/max: 0/0/98
    Received: 559
    Sent: 563
    Connections: 4
    Outstanding: 0
    Zxid: 0x31000000ba
    Mode: leader
    Node count: 55
    linux03:2181
    Zookeeper version: 3.4.6-1569965, built on 02/20/2014 09:09 GMT
    Clients:
    /192.168.1.103:487681
    /192.168.1.103:490180
    /192.168.1.103:487671

    Latency min/avg/max: 0/0/43
    Received: 791
    Sent: 816
    Connections: 3
    Outstanding: 0
    Zxid: 0x31000000ba
    Mode: follower
    Node count: 55
    Took 0.2053 seconds

flush

  • 手動觸發regionserver內存中的數據flush到hdfs文件中

    flush 'TABLENAME' ----- FLUSH整個表的所有region的數據

    flush 'REGIONNAME' ----- FLUSH一個指定的region的數據

    flush 't1,,1567511352137.0dc090a295f6941eac28467726757449.'

    flush 'ENCODED_REGIONNAME' ----- FLUSH一個指定的region的數據

    flush '80faf02f78740c27429a385df4d8818d'

    flush 'REGION_SERVER_NAME' ----- FLUSH一個指定的regionserver中托管的所有region的數據

move

  • 移動region

    move 'ENCODED_REGIONNAME'

    move '80faf02f78740c27429a385df4d8818d'

    move 'ENCODED_REGIONNAME', 'SERVER_NAME'

    move '80faf02f78740c27429a385df4d8818d','linux03,16020,1567514124105'

    move '80faf02f78740c27429a385df4d8818d','linux03,16020'

unassign/assign

  • 去分配/分配(往往是移動region等其他操作的中間步驟)

    unassign 'REGIONNAME'

    unassign 'REGIONNAME', true ----- 強制

    unassign 'ENCODED_REGIONNAME'

    unassign 'ENCODED_REGIONNAME', true

    unassign '80faf02f78740c27429a385df4d8818d' ----- 查看首頁Online Regions為0

    assign 'REGIONNAME'

    assign 'ENCODED_REGIONNAME'

    assign '80faf02f78740c27429a385df4d8818d'

balance_switch true/false

  • 開啟/關閉自動負載均衡

    balance_switch true/false

balancer_enabled

  • 查看當前負載均衡狀態

    balancer_enabled

split

  • 手動觸發split操作

    split 'regionName', 'splitKey'

    split 'd3e5aa8fffbfff6b2d267ac2b21820e5','r002'

merge_region

  • 手動合並region

    hbase> merge_region 'FULL_REGIONNAME', 'FULL_REGIONNAME'

    hbase> merge_region 'FULL_REGIONNAME', 'FULL_REGIONNAME', true ----- 強制

    hbase> merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME'

    hbase> merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME', true

    merge_region 'a2744e261ecc71d0e8b83d815ff1e381','68d720bbeb5ba7d2576857cd4e27ef70'

major_compact

  • 手動觸發major compact

    major_compact 't1' ----- compact指定表中的所有region

    major_compact 'r1' ----- compact一個指定的region

    major_compact 'r1', 'c1' ----- compact一個指定region中一個指定列族

    major_compact 't1', 'c1' ----- compact指定表中的一個指定列族


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM