HBase shell 常用命令

本文详细介绍HBase命令行界面的基本操作,包括进入HBase环境、查看当前用户、表的管理(如创建、删除、查看和修改表)、权限管理、数据操作(增加、查询、删除数据)及使用过滤器进行高级查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、进入hbase命令行界面

$HBASE_HOME/bin/hbase shell

2、查看当前用户

hbase(main):001:0> whoami

3、表的管理

            (1)查看所有表

hbase(main):002:0> list

           (2)创建表

                   语法:create  <table> , {NAME => <family>, VERSIONS => <VERSIONS>}

                   例子:创建表 table1 且列族family分别是:family1,family2,且版本书均为3

create 'table1',{NAME=>'family1',VERSIONS=>3},{NAME=>'family2',VERSIONS=>3}

           (3)删除表

                 删除表要分两步,第一步先disable,然后drop

                 例子:删除表table1

hbase(main):005:0> disable 'table1'
0 row(s) in 2.2930 seconds

hbase(main):006:0> drop 'table1'
0 row(s) in 1.2810 seconds

            (4)查看表的结构

             语法:describe <table>  

describe 'table1'

           (5)修改表的结构

             语法:alter 'table1',{NAME=>'family1'},{NAME=>'family2',METHOD=>'delete'}

             例子:修改表table1的列族cf的TTL为180天

#修改表结构前必须先disable表

hbase(main):013:0> disable 'table1'


hbase(main):015:0> alter 'table1',{NAME=>'family1',TTL=>'15552000'},{NAME=>'family2',TTL=>'15552000'}


hbase(main):016:0> enable 'table1'

4、权限管理

        (1)分配权限

           # 语法 : grant <user> <permissions> <table> <column family> <column qualifier> 参数后面用逗号分隔
           # 权限用五个字母表示: "RWXCA".
           # READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')
           # 例如,给用户‘user1'分配对表table1有读写的权限

hbase(main)>grant 'user1','RW','table1'

       (2)查看权限

        # 语法:user_permission <table>
        # 例如,查看表ttabe1的权限列表

user_permission 'table1'

      (3)收回权限

         # 与分配权限类似,语法:revoke <user> <table> <column family> <column qualifier>
         # 例如,收回user1用户在表table1上的权限

hbase(main)> revoke 'user1','table1'

4、数据的操作

        (1)增加数据

            # 语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp>
            # 例如:给表student的添加一行记录:rowkey是1001,family name:info,column name:name,value:Thomas',                                    timestamp:系统默认

hbase(main) > put 'student','1001','info:name','Thomas' 

        (2)查询数据

                 (a)查询某行数据

                  #语法:get <table>,<rowkey>,[<family:column>,......]

                  #例子:查询students表rowkey为10001,列族是info,列名为name

hbase(main)> get 'student','1001', 'info:name'
# 或者:
hbase(main)> get 'student','1001', {COLUMN=>'info:name'}

                (b)扫描表

                    # 语法:scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}
                    # 另外,还可以添加STARTROW、TIMERANGE和FITLER等高级功能
                    # 例如:扫描表student的前5条数据;扫描student从rowkey=1001
                

hbase(main) > scan 'student',{LIMIT=>5}

hbase(main) > scan 'student',{STARTROW => '1001', STOPROW  => '1001'} 

hbase(main) > scan 'student',{STARTROW => '1001'} 

                     FILTER过滤器

                     在hbase shell用show_filters命令查看一下可以用什么Filter                    

hbase(main):007:0> show_filters
ColumnPrefixFilter                                                                                                                                                                                                 
TimestampsFilter                                                                                                                                                                                                   
PageFilter                                                                                                                                                                                                         
MultipleColumnPrefixFilter                                                                                                                                                                                         
FamilyFilter                                                                                                                                                                                                       
ColumnPaginationFilter                                                                                                                                                                                             
SingleColumnValueFilter                                                                                                                                                                                            
RowFilter                                                                                                                                                                                                          
QualifierFilter                                                                                                                                                                                                    
ColumnRangeFilter                                                                                                                                                                                                  
ValueFilter                                                                                                                                                                                                        
PrefixFilter                                                                                                                                                                                                       
SingleColumnValueExcludeFilter                                                                                                                                                                                     
ColumnCountGetFilter                                                                                                                                                                                               
InclusiveStopFilter                                                                                                                                                                                                
DependentColumnFilter                                                                                                                                                                                              
FirstKeyOnlyFilter                                                                                                                                                                                                 
KeyOnlyFilter

                     语法:scan <table>,{FILTER=>"(<FilterName>(<value>))"}

                      例子:扫描student表只查询列名是na开头的前5条记录

scan 'student',{LIMIT=>5,FILTER=>"(ColumnPrefixFilter('na'))"}

          (3)删除数据

                # 语法:deleteall <table>, <rowkey>,  <family:column> , <timestamp>,可以不指定列名,删除整行数据
                # 例如:删除表student,1001的数据;删除student表某些rowkey的某一列数据;

hbase(main)> deleteall 'student','1001'

hbase(main)> delete 'student','1002','info:sex' 

                清空表中所有数据                 

hbase(main)> truncate 'student'

                   (4)统计表数据行数

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

hbase(main)> count 'student',{INTERVAL=>100,CACHE=>500}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值