HBase —— Shell操作

表的基本操作

创建表

create '表名', '列簇名', ... 

查看表

list

删除表

## 禁用表
disable "表名"
## 删除表
drop "表名"

添加数据

put '表名','ROWKEY','列簇名:列','值'

查看数据

get '表名','ROWKEY',{FORMATTER => 'toString'}

更新数据

## 更新数据仍然用put
put '表名','ROWKEY','列簇名:列','值'

删除数据

## 删除一列
delete '表名','ROWKEY','列簇:列'
## 删除一行
deleteall '表名','ROWKEY'

扫描表

## 还是要避免scan一张大表
scan '表名',{FORMATTER => 'toString'}
## 可以限制返回数量,列等
scan '表名',{LIMIT => 3, COLUMNS => ['列簇:列','列簇:列'], FORMATTER => 'toString'}

查询指定ROWKEY

scan '表名', {ROWPREFIXFILTER => 'rowkey'}

过滤器

show_filters	# 显示过滤器
scan '表名', {Filter => "过滤器(比较运算符,'比较器表达式')"}	# 使用过滤器

过滤器 描述
RowFilter 行键过滤器
ValueFilter 列值过滤器
QualifierFilter 列标识过滤器
FamilyFilter 列簇过滤器
SingleColumnValueFilter 单列值过滤器
SingleColumnValueExcludeFilter 列值排除过滤器
PrefixFilter 行键前值过滤器
PageFilter 分页过滤器

比较器

比较器 描述 基本语法
BinaryComparator 匹配完整字节数组 binary:值
BinaryPrefixComparator 匹配字节数组前缀 binary prefix:值
BitComparator 匹配比特位 bit:值
NullComparator 匹配空值 null
RegexStringComparator 匹配正则表达式 regexstring:正则表达式
SubstringComparator 匹配子字符串 substring:值

过滤器使用示例

## 例如查询mytable中的RowKey为x的行信息
scan 'mytable', {FILTER => "RowFilter(=,'binary:x')"}

组合过滤器

使用AND和OR来组合过滤查询

scan '表名', {Filter => "过滤器(比较运算符,'比较器表达式')" AND/OR "过滤器(比较运算符,'比较器表达式')"}

shell状态管理

命令 描述
status 查看状态
whoami 查看当前用户
list 显示所有表
count 统计表的记录数
describe 展示表结构信息
exists 检查表是否存在
enable 启用一张表
disable 禁用一张表
is_enabled 检查表是否启用
is_deabled 检查表是否禁用
alter 更改表和列簇的模式
drop 删除一张被禁用的表
truncate 清空表的数据