您的位置:首页 > 运维架构 > Shell

Hbase笔记二之Hbase Shell基本操作

2017-02-08 21:19 615 查看

启动shell

Hbase集群搭建完毕后在linux中输入hbase回车可以看到很多帮助信息。这个是调用bin目录下的hbase脚本



输入Hbase Shell



基本shell命令

启动hbase shell后可以输入help查看帮助,hbase命令分很多组,我可以使用help命令查看具体某一个命令的用法,比如查看general组下的status命令

1.help



hbase(main):006:0> status 'simple'

可以看到server信息端口16020和浏览器中是一致的。

 

 

2.create

hbase(main):019:0> create 't1','f1'

创建表使用ddl组的create命令,添加查询数据使用dml组的put和scan命令



创建一个t1表,使用默认的命名空间ns1:t1,f1是列族名称

hbase(main):020:0> put't1','r1','f1:c1',1,1

使用put命令添加数据,r1是行键名称,f1:c1表示列族名称和列限定符名称,第一个1表示value,第二个1是版本号也可以是时间戳。

创建表时必须指定列族

3.count

hbase(main):001:0> count 't1'

1 row(s) in 1.1210 seconds

 

=> 1

查看t1表记录数量

 

4.list

hbase(main):002:0> list

TABLE                                                                                                                                                                 

t1                                                                                                                                                                    

1 row(s) in 0.2240 seconds

 

=> ["t1"]

查看表数量

 

5.disable drop

hbase(main):003:0> disable 't1'

0 row(s) in 2.9560 seconds

 

hbase(main):004:0> drop 't1'

0 row(s) in 2.4320 seconds

 

hbase(main):005:0> list

TABLE                                                                                                                                                                 

0 row(s) in 0.0120 seconds

 

=> []

删除表必须先将其改为disable状态才能drop

 

6.命名空间

查看hbase命名空间

hbase(main):012:0> list_namespace

NAMESPACE                                                                                                                                                             

default                                                                                                                                                                

hbase                                                                                                                                                                 

2 row(s) in 0.2440 seconds

 

查看命名空间下的表

hbase(main):013:0> list_namespace_tables'hbase'

TABLE                                                                                                                                                                 

meta                                                                                                                                                                  

namespace                                                                                                                                                              

2 row(s) in 0.0850 seconds

 

Hbase默认有两个命名空间hbase和default,hbase下有两张表meta和namespace。

namespace:表存放系统所有命名空间

hbase(main):015:0> scan 'hbase:namespace'

ROW                                       COLUMN+CELL                                                                                                                

 default                                  column=info:d, timestamp=1484122135416, value=\x0A\x07default                                                              

 hbase                                    column=info:d, timestamp=1484122135490, value=\x0A\x05hbase                                                                

2 row(s) in 0.1200 seconds

 

 

meta:存放所有region信息



创建表时根据行键切分,指定开始key和结束key,查找数据时根据行键的范围确定是region server是139



Hbase中meta表存放的是所有的region信息,查询时根据表名(tx2),行键确定regionserver再确定region从而定位记录。

 

以上信息在浏览器http://shb01:16010/都可以看到

 

7.truncate

清除表中数据,执行后无论表有多少个region(可能位于不同region server)都回全部删除然后再创建一个新的region

 

8.get

获取表tx1中行键为r1的记录

hbase(main):022:0> get  'tx1','r1'

COLUMN                                     CELL                                                                                                                       

 f1:cc1                                   timestamp=1, value=200                                                                                                      

1 row(s) in 0.1670 seconds

 

1.      其他

创建t3表,定义两个列族f1,f2并且指定startkey,endkey

hbase(main):003:0> create't3','f1','f2',SPLITS=>['100','200','330']

0 row(s) in 4.8230 seconds

 

=> Hbase::Table - t3

 

分别向t3表的两个列族中插入数据

hbase(main):011:0> put't3','r1','f1:c1',1,200

0 row(s) in 0.1500 seconds

 

hbase(main):012:0> put't3','r2','f2:c2',1,201

0 row(s) in 0.0180 seconds

 

hbase(main):016:0> scan 't3'

ROW                                        COLUMN+CELL                                                                                                                

 r1                                       column=f1:c1, timestamp=200, value=1                                                                                       

 r2                                       column=f2:c2, timestamp=201, value=1

 

再看hdfs上的显示,hdfs上的hbase目录中存放相关数据,这个是hbase-site.xml文件中定义的。



在default命名空间下着4个是region信息,每个region下有之前建立的列族f1和f2,列族下有put进来的数据





http://shb01:16010/table.jsp?name=t3显示如下

其中t3,100,1484267637964.a63ecf8700c36e14d5c4668d9606a1e2.为表名,startkey,表名称的hash编码,region的名称,其中region名称和上图中hdfs上的显示是一致的

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hbase shell