在linux下操作hbase作者:bin
这个月比较忙,一直都没有时间整理最近学习的东西,T_T
这里介绍如何使用hbase shell进行操作hbase
具体的安装、配置,可以随意在网上找到,这里不赘述
登录hbase shell
hbase shell
退出(ctrl+c)
exit
(注意在hbase shell中退格键是删除不了东西的,需要按住shift+退格删除)
一、数据表相关
创建数据表
create 'user' , 'f1', 'f2'
禁用表
disable 'user'
启动表
enable 'user'
判断表是否启动
is_enabled 'user'
添加列族
alter 'user', 'f3'
删除列族
alter 'user', 'delete' => 'f3'
删除表(需要先禁用表)
disable 'user'
drop 'user'
二、创建数据
使用put插入一条数据(重复插入,即为更新)
put 'user', '1', 'f1:name', 'zengbin'
put 'user', '1', 'f2:age', '23'
然后我们scan一下
scan 'user'
可以看到如下信息
hbase(main):009:0> scan 'user'
ROW COLUMN+CELL
1 column=f1:name, timestamp=1498806525565, value=zengbin
1 column=f2:age, timestamp=1498806612464, value=23
1 row(s) in 0.0180 seconds
三、拉取数据
使用get命令通过rowkey获取数据
get 'user', '1'
指定族和行
get 'user', '1', {COLUMN => ['f2:age']}
指定族、列、时间戳
get 'user', '1', {COLUMN => ['f2:age'], TIMESTAMP=> 1498806675621}
指定输出行的类型
转换为string类型
get 'user', '1' , {COLUMN => ['f2:age:toString']}
使用scan,扫描表
scan 'user'
扫描并且指定取出特定列
scan 'user', { COLUMNS=> ['f1:name'] }
扫描指定开始行和结束列
scan 'user', { COLUMNS=> ['f1:name'] , STARTROW => '1' , STOPROW => '1'}
扫描指定开始行和结束列,并且限制输出排前几的行
scan 'user', { COLUMNS=> ['f1:name'] , STARTROW => '1' , STOPROW => '1', LIMIT => 1}
倒序扫描指定开始行和结束列,并且限制输出排前几的行
注意倒序,startrow应该比stoprow大,才会有结果
scan 'user', { COLUMNS=> ['f1:name'] , STARTROW => '1' , STOPROW => '0', LIMIT => 1, REVERSED => true}
同样可以指定输出列的类型
scan 'user', { COLUMNS=> ['f2:age:toString'] , STARTROW => '1' , STOPROW => '0', LIMIT => 1, REVERSED => true}
四、删除数据
删除一列数据
delete 'user', '1', 'f2:age'
删除整行
deleteall 'user', '1'
删除表(需要先禁用表)
disable 'user'
drop 'user'
五、统计表
使用count进行统计表有多少行
count ‘user’
hbase shell同样支持sql中的truncate命令
truncate 'user'
truncate命令会先禁用表,然后删除表,再创建表。
六、权限相关
使用grant命令添加权限
R – 代表读取权限
W – 代表写权限
X – 代表执行权限
C – 代表创建权限
A – 代表管理权限
比如给www用户赋予所有权限
grant 'www', 'RWXCA'
使用revoke命令撤销用户权限
revoke 'Tutorialspoint'
查看用户权限
user_permission 'www'