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

 

posted @ 2019-01-10 17:38  codercg  阅读(1287)  评论(0编辑  收藏  举报