HBase常用命令
hbase shell命令:进入hbase客户端
create命令:创建表
create ‘<table name>’,’<column family1>’,’<column family2>’
list 命令:列出表
列出所有表:list
正则匹配: list 'abc.*'
注:字符串用单引号或双引号都可以,但不能不用
desc命令:描述表
desc 'table_name'
count 命令:列出表行数
count ‘<table name>’
put命令:插入与更新
put ’<table name>’,’row1’,’<colfamily:colname>’,’<value>’
如:put 'emp','1','personal data:name','raju'
scan命令:扫描表
scan 'table' 查看所有记录
scan 'table', LIMIT => 5 查看前5条记录
scan 'table', COLUMNS => ['cf:a', 'cf:b'], LIMIT => 5 查看指定列的前5条记录
scan 'test1', FILTER=>"ValueFilter(=,'binary:sku188')" 扫描值等于sku188的记录
scan 'test1', FILTER=>"ValueFilter(=,'substring:88')" 扫描值包含88的记录
FILTER用法较复杂,参考:https://blog.csdn.net/liuxiao723846/article/details/73823056
scan 'table', VERSIONS => 3 扫描整张表,并指定最大版本数为3
get命令:读取
get ’<table name>’,’row1’
如:get 'emp', '1'
使用get读取指定列:
hbase>get 'table name', ‘rowid’, {COLUMN => ‘column family:column name ’}
如:hbase(main):015:0> get 'emp', 'row1', {COLUMN=>'personal:name'}
其它写法: get 'table name', ‘rowid’, ‘column family:column name ’
get 'table name', ‘rowid’, COLUMN => ‘column family:column name ’
注: COLUMN 必须大写, 使用花括号可以指定其它查询条件,比如 TIMERANGE 等
delete命令:删除数据
delete ‘<table name>’, ‘<row>’, ‘<column name >’[, <time stamp>]
deleteall命令用于删除一行数据
deleteall ‘<table name>’, ‘<row>’
disable+drop命令:删除表
用drop命令可以删除表。在删除一个表之前必须先将其禁用。
hbase(main):018:0> disable 'emp'
hbase(main):019:0> drop 'emp'
使用exists 命令验证表是否被删除。
hbase(main):020:0> exists 'emp'
Table emp does not exist
disable_all + drop_all可以使用正则匹配批量删除表
如:
disable_all 'raj.*'
drop_all 'raj.*'
truncate命令:清空表
此命令将禁止、删除,再重新创建一个表,最张效果就是清空整张表。truncate 的语法如下:
hbase> truncate 'table name'
list_snapshots: 列出所有快照
snapshot命令:创建指定表的快照(不产生文件复制)
snapshot 'tableName','snapshotName'
delete_snapshot: 删除快照
delete_snapshot 'snapshotName'
clone_snapshot命令:从指定的快照生成新表(克隆)
由于不会产生数据复制,所以最终用到的数据不会是之前的两倍。
clone_snapshot 'snapshotName','newTableName'
restore_snapshot命令:将指定快照内容替换当前表结构或数据
restore_snapshot 'snapshotName'
snapshot等命令:重命名表
hbase shell> disable 'tableName'
hbase shell> snapshot 'tableName', 'tableSnapshot'
hbase shell> clone_snapshot 'tableSnapshot', 'newTableName'
hbase shell> delete_snapshot 'tableSnapshot'
hbase shell> drop 'tableName'
void rename(HBaseAdmin admin, String oldTableName, String newTableName) {
String snapshotName = randomName();
admin.disableTable(oldTableName);
admin.snapshot(snapshotName, oldTableName);
admin.cloneSnapshot(snapshotName, newTableName);
admin.deleteSnapshot(snapshotName);
admin.deleteTable(oldTableName);
}
其它
CTRL + S 停止正在运行的任务
CTRL + Q 继续正在运行的任务
在hbase终端,往前删除时要同按Ctrl + Backspace,字符串可以使用单引号或者双引号。
参考:https://www.yiibai.com/hbase/hbase_scan.html