-
启动命令行客户端
bin/hbase shell
一般命令
status
- 查看HBase的状态, 如服务器数量
version
- 查询正在使用的HBase版本
whoami
- 查询用户信息
NameSpace操作
-
HBase系统默认定义了两个NameSpace
-
hbase,系统内建表,包括namespace和meta表
namespace:系统中的namespace信息,meta:系统中的region信息
-
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:442050Latency 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:440961Latency 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:487671Latency 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指定表中的一个指定列族