HBase shell 常用命令

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}

 

 

 

 

 

HBase ShellHBase的交互式命令行界面,用于管理HBase数据库和执行各种操作。以下是HBase Shell常用命令: 1. help:显示可用命令的帮助信息。 2. version:显示当前HBase Shell的版本号。 3. status:显示HBase集群的状态信息,包括RegionServer的数量和状态。 4. list:列出所有的表。 5. create ‘table_name’, ‘column_family’:创建一个新表,并指定列族。 6. disable ‘table_name’:禁用一个表,停止对其进行读写操作。 7. enable ‘table_name’:启用一个表,允许对其进行读写操作。 8. describe ‘table_name’:显示一个表的结构信息,包括列族和列的详细信息。 9. alter ‘table_name’, {NAME => ‘column_family’, VERSIONS => ‘version_count’}:修改表的列族或列的配置,例如修改列族的最大版本数目。 10. drop ‘table_name’:删除一个表。 11. put ‘table_name’, ‘row_key’, ‘column_family:column’, ‘value’:向表中插入一条数据。 12. get ‘table_name’, ‘row_key’:获取表中指定行的数据。 13. scan ‘table_name’:扫描整个表,获取所有数据。 14. delete ‘table_name’, ‘row_key’, ‘column_family:column’:删除表中指定行的数据。 15. count ‘table_name’:统计表中的行数。 这些命令只是HBase Shell中的一部分,还有其他更多的命令可用于管理和操作HBase数据库。通过使用这些命令,可以在HBase Shell中轻松地管理表、插入和检索数据,以及执行其他与HBase相关的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值