美文网首页
hbase基本命令

hbase基本命令

作者: 小月半会飞 | 来源:发表于2019-01-11 11:10 被阅读0次

    1、进入hbase的shell

    hbase提供了一个shell的终端给用户交互

    [root@hadoop3 conf]# hbase shell
    

    退出使用quit或者ctrl+c
    需要关闭hadoop的安全模式不然进行一些操作,比如scan会卡住
    进入到hadoop的bin目录下
    在启动hbase之前

    [root@hadoop3 conf]# hadoop dfsadmin -safemode leave
    

    2、创建表

    create ‘表名’,’列族1’,’列族2’,…’列族n’

    craete 'user','info1','info2'
    

    3、查看所有表

    list
    

    4、描述表

    describe 'user'
    Table user is ENABLED                                                                                                                                                            
    COLUMN FAMILIES DESCRIPTION                                                                                                                                                       
    {NAME => 'info1', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KE
    EP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                                                                    
    {NAME => 'info2', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KE
    EP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                                                                    
    2 row(s) in 0.0790 seconds
    

    5、删除表

    hbase(main):033:0> disable 'user'
    0 row(s) in 1.4110 seconds
    
    hbase(main):034:0> drop 'user'
    0 row(s) in 0.2330 seconds
    hbase(main):035:0> list
    TABLE                                                                                                                                                                             
    0 row(s) in 0.0450 seconds
    

    6、判断表是否存在

    hbase(main):040:0> exists 'user'
    Table user does exist                                                                                                                                                             
    0 row(s) in 0.0980 seconds
    

    7、向表中添加数据

    hbase(main):041:0> put 'user','1234','info1:name','zhangsan'
    0 row(s) in 0.1310 seconds
    

    hbase没有直接修改操作,但是可以覆盖,只要rowkey跟列族列名一致就会覆盖
    比如这里要修改上面插入数据的info:name为’eve’

    hbase(main):041:0> put 'user','1234','info1:name','eve'
    0 row(s) in 0.1310 seconds
    hbase(main):042:0> scan 'user1'
    ROW                                           COLUMN+CELL                                                                                                                         
     1234                                         column=info1:name, timestamp=1509304915052, value=eve
    

    8、扫描整个表

    hbase(main):043:0> scan 'user'
    

    9、查询记录数

    rowkey相同只算一条

    hbase(main):066:0> count 'user'
    2 row(s) in 0.0340 seconds
    
    => 2
    

    10、查询

    查询某一行

    hbase(main):067:0> get 'user','1234'
    COLUMN                                CELL                                                                                                      
     info1:age                            timestamp=1547125476542, value=18                                                                         
     info1:name                           timestamp=1547125469727, value=eve                                                                        
     info2:favor                          timestamp=1547125482454, value=eat                                                                        
    3 row(s) in 0.0330 seconds
    

    查询某个列族:

    hbase(main):068:0> get 'user','1234','info1'
    COLUMN                                CELL                                                                                                      
     info1:age                            timestamp=1547125476542, value=18                                                                         
     info1:name                           timestamp=1547125469727, value=eve                                                                        
    2 row(s) in 0.0280 seconds
    

    查询某个列:

    hbase(main):068:0> get 'user','1234','info1'
    COLUMN                                CELL                                                                                                      
     info1:age                            timestamp=1547125476542, value=18                                                                         
     info1:name                           timestamp=1547125469727, value=eve                                                                        
    2 row(s) in 0.0280 seconds
    

    查询某个时间戳版本
    不知道时间戳
    先将这一个列族修改为能选择三个版本的列族,可以随便选择查多少个版本,查的版本只要比存的版本少就行

    hbase(main):069:0> alter 'user' ,{NAME=>'info1',VERSIONS=>3}
    hbase(main):070:0> get 'user','1234',{COLUMN=>'info1:name',VERSIONS=>3}
    

    知道时间戳

    hbase(main):071:0> get 'user', '1234', {COLUMN => 'info1:name',TIMESTAMP => 1538014481194}
    

    11、删除记录

    删除列族下的某一列

    hbase(main):071:0> delete 'user','1234','info1:name'
    0 row(s) in 0.0170 seconds
    

    删除某一列族

    hbase(main):072:0> delete 'user','1234','info2'
    0 row(s) in 0.0230 seconds
    

    删除某一行

    hbase(main):073:0> deleteall 'user','1234'
    0 row(s) in 0.0310 seconds
    

    12、清空表

    hbase(main):074:0> truncate 'user'
    Truncating 'user' table (it may take a while):
     - Disabling table...
     - Truncating table...
    0 row(s) in 1.4540 seconds
    hbase(main):075:0> scan 'user'
    ROW                                   COLUMN+CELL                                                                                               
    0 row(s) in 0.0260 seconds
    

    相关文章

      网友评论

          本文标题:hbase基本命令

          本文链接:https://www.haomeiwen.com/subject/ggytdqtx.html