HbaseShell常用命令
HBase Shell
下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下:filter
名称 |
命令表达式 |
创建表 |
create \’表名称\’, \’列名称1\’,\’列名称2\’,\’列名称N\’ |
添加记录 |
put \’表名称\’, \’行名称\’, \’列名称:\’, \’值\’ |
查看记录 |
get \’表名称\’, \’行名称\’ |
查看表中的记录总数 |
count \’表名称\’ |
删除记录 |
delete \’表名\’ ,\’行名称\’ , \’列名称\’ |
删除一张表 |
先要屏蔽该表,才能对该表进行删除,第一步 disable \’表名称\’ 第二步 drop \’表名称\’ |
查看所有记录 |
scan “表名称” |
查看某个表某个列中所有数据 |
scan “表名称” , [\’列名称:\’] |
更新记录 |
就是重写一遍进行覆盖 |
一、一般操作
1.查询服务器状态
2.查询hbase版本
二、DDL操作
1.创建一个表(包含三个列族)
create \’member\’,\’member_id\’,\’address\’,\’info\’
2.获得表的描述
list
describe \’member’
3.删除一个列族,alter,disable,enable
我们之前建了3个列族,但是发现member_id这个列族是多余的,因为他就是主键,所以我们要将其删除。(关键字大小写敏感)
disable \’member\’
alter\’member\’,NAME=>\’member_id\’,METHOD=>\’delete\’
describe \’member\’
该列族已经删除,我们继续将表enable
enable \’member\’
4.drop一个表
disable \’temp_table\’
drop \’temp_table\’
6.查询表是否存在
exists \’member\’
7.判断表是否enable
is_enabled \’member\’
8.判断表是否disable
is_disabled \’member\’
三、DML操作
1.插入几条记录
put \’member\’,\’xiaoming\’,\’info:age\’,\’24\’
put \’member\’,\’xiaoming\’,\’info:birthday\’,\’1987-06-17\’
put \’member\’,\’xiaoming\’,\’info:company\’,\’alibaba\’
put \’member\’,\’xiaoming\’,\’address:contry\’,\’china\’
put \’member\’,\’xiaoming\’,\’address:province\’,\’zhejiang\’
put \’member\’,\’xiaoming\’,\’address:city\’,\’hangzhou\’
put \’member\’,\’xiaofeng\’,\’info:birthday\’,\’1987-4-17\’
put \’member\’,\’xiaofeng\’,\’info:favorite\’,\’movie\’
put \’member\’,\’xiaofeng\’,\’info:company\’,\’alibaba\’
put \’member\’,\’xiaofeng\’,\’address:contry\’,\’china\’
put \’member\’,\’xiaofeng\’,\’address:province\’,\’guangdong\’
put \’member\’,\’xiaofeng\’,\’address:city\’,\’jieyang\’
put \’member\’,\’xiaofeng\’,\’address:town\’,\’xianqiao\’
2.获取一条数据
获取一个id的所有数据
get \’member\’,\’xiaofeng\’
获取一个id,一个列族的所有数据
get \’member\’, \’xiaoming\’,\’info\’
获取一个id,一个列族中一个列的所有数据
get \’member\’,\’xiaoming\’,\’info:age\’
3.更新一条记录
将xiaoming的年龄改成99
put \’member\’,\’xiaoming\’,\’info:age\’ ,\’99\’
get \’member\’,\’xiaoming\’,\’info:age\’
4.通过timestamp来获取两个版本的数据
get \’member\’,\’xiaoming\’,{COLUMN=>\’info:age\’,TIMESTAMP=>1321586238965}
get \’member\’,\’xiaoming\’,{COLUMN=>\’info:age\’,TIMESTAMP=>1321586571843}
得到多行 多列数据
scan ‘test′, {COLUMNS => [\’cf:a\’, \’cf2\’] }
指定最新几个版
scan \’t3\’, { COLUMNS => [\’f1:a\’, \’f2:a\’],VERSIONS=>5}
create \’表名\’,{NAME=\’列族名1\’,VERSIONS=给定一个版本号},{NAME=\’列族名2\’,VERSIONS=给定的版本号}
5.删除id为xiaoming的值的‘info:age’字段
delete \’member\’,\’xiaoming\’,\’info:age\’
6.删除整行
deleteall \’member\’,\’xiaofeng\’
7.查询表中有多少行:
count \’member\’
8.给xiaofeng这个id增加\’info:age\’字段
incr \’member\’,\’xiaofeng\’,\’info:age\’
get \’member\’,\’xiaofeng\’,\’info:age\’
9.将整张表清空:
truncate \’member\’
可以看出,hbase是先将掉disable掉,然后drop掉后重建表来实现清空的功能的。
得到所有行info:birthday列中的数据
scan \’member\’ , {COLUMNS => \’info:birthday\’}