Hbase操作命令

 


1.创建新增表
建表语句 create '表名','列簇名','列簇名'

hbase shell> create 'mytable','ct','ct1' 

语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp>
新增或者覆盖数据 put '表名','键名','列名(不是列簇名)','值'
指定的列名下单元格有值就覆盖..没有值就创建.所以HBase的添加数据和修改数据都是put语句..
最后的时间戳可以不写..默认为系统时间,如果要写..切记不可使用引号括起来

hbase shell> put 'mytable','woshikey','ct:msg','99999999999999'
hbase shell> put 'mytable','woshikey','ct:msg','99999999999999',1462241148

2.查询表
列出所有表

hbase shell> list 

查看表结构

hbase shell> describe 'mytable'

扫描表
语法: scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}

hbase shell> scan 'mytable'

返回所属列簇

hbase shell> scan 'mytable',{COLUMNS=>'ct'}

返回所属列簇里每个列的第一个值

hbase shell> scan 'mytable',{COLUMNS=>'ct',LIMIT=>1} 

返回所属列簇里指定列的第一个值

hbase shell> scan 'mytable',{COLUMNS=>'ct:msg',LIMIT=>1}

获取表数据
语法: get <table>,<key>[,<columns
主键过滤

hbase shell> get 'mytable','rowkey1

主键+列簇过滤

hbase shell> get 'mytable','rowkey1','ct'

主键+列簇+所属列过滤

hbase shell> get 'mytable','rowkey1','ct:msg'

主键+列簇过滤

hbase shell> get 'mytable','rowkey1',{COLUMN=>'ct'}

主键+列簇+所属列过滤

hbase shell> get 'mytable','rowkey1',{COLUMN=>'ct:msg'}

获取表行数
语法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}
INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
例如,查询表t1中的行数,每100条显示一次,缓存区为500

hbase shell> count 'mytable', {INTERVAL => 100, CACHE => 500}

3.删除表
停用表

hbase shell> disable 'mytable' 

删除表

hbase shell> drop 'table' 

删除某个单元值的值会删除所有版本,必须指定列名
语法:delete <table>, <rowkey>, <family:column> , <timestamp>
测试后发现后边跟时间戳也没有用,依然会删除所有版本

hbase shell> delete 'mytable','rowkey','ct:msg'

删除行或者整个列簇
可以不指定列名,删除整行数据
语法:deleteall <table>, <rowkey>, <family:column> , <timestamp>

hbase shell> deleteall 'mytable','ct'
hbase shell> deleteall 'mytable'

清空表数据
语法: truncate <table>
等同于 disable -> drop -> create

hbase shell> truncate 'mytable'

4.修改表
修改表数据 put ‘表明’,‘主键’,‘列族:列名’,‘新值’

put 't_user' ,'1001','st1:age','19'

修改表的结构..删除某列簇
删除表中的列簇 注: 要求先disable 表,,修改后enable表
请严格区分大小写

hbase shell> disable 'mytable'
hbase shell> alter 'mytable',{NAME=>'ct',METHOD=>'delete'}
hbase shell> enable 'mytable'

修改表结构 新增一个列簇
请严格区分大小写

hbase shell> disable 'mytable'
hbase shell> alter 'mytable',{NAME=>'columnsfamilyName',VERSIONS=>1}
hbase shell> enable 'mytable'

停用表

hbase shell> disable 'mytable' 

为表创建快照..这时还没有复制数据
hbase shell> snapshot 'mytable', 'tableSnapshot'
根据某个快照而创建新表..此时复制数据

hbase shell> clone_snapshot 'tableSnapshot', 'newTableName' 

删除快照

hbase shell> delete_snapshot 'tableSnapshot' 

删除原来的表

hbase shell> drop 'mytable'

posted on 2018-11-16 15:11  优品三悦  阅读(287)  评论(0编辑  收藏  举报

导航