进入hbase shell查询一个表的数据量时比较耗时且容易刷屏,使用hbase自带的工具可以直接查询
hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'namespace名:表名'
hdfs数据导入hbase
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=','
-Dimporttsv.columns=字段列表 namespace名:表名 hdfs路径
-Dimporttsv.separator是指定分割符,逗号时一般上传csv文件会比较好
-Dimporttsv.columns 后面跟字段列表,要写成 列簇名:列名,列簇名:列名,列簇名:列名.....的形式
其中要做主键的位置对应写为:HBASE_ROW_KEY
hbase根据时间戳查找数据
scan 'namespace名:表名', {COLUMN => '列簇:列', TIMERANGE => [开始时间戳,结束时间戳]}
Hbase倒叙查询记录
scan 'namespace名:列名',{REVERSED => TRUE}
hbase删除表
disable 表名(删除之前需要先禁用表)
drop 表名
hbase权限操作
读取(R) - 可以读取给定范围的数据。
写入(W) - 可以在给定范围写入数据。
执行(X) - 可以在给定范围内执行协处理器端点。
创建(C) - 可以在给定范围内创建表或删除表(甚至不创建它们)。
管理员(A) - 可以执行群集操作,例如在给定的范围内平衡群集或分配区域
赋予:grant 回收: revoke
例子:
给user1用户device表的读写权限
grant 'user1', 'RW', 'device'
收回user1的权限
revoke 'user1','device'