千家信息网

常用HBase shell命令有哪些

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章将为大家详细讲解有关常用HBase shell命令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一:HBase1.使用hbase 命令之前先检查一下h
千家信息网最后更新 2025年02月04日常用HBase shell命令有哪些

这篇文章将为大家详细讲解有关常用HBase shell命令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一:HBase

1.使用hbase 命令之前先检查一下hbase是否运行正常,通过JPS查看进程

hadoop@master:/mysoftware/hbase-1.2.1/bin$ jps4051 HQuorumPeer3776 QuorumPeerMain2818 NameNode4149 HMaster3140 SecondaryNameNode2966 DataNode4549 Jps4304 HRegionServer3365 ResourceManager

2.进入HBase shell 客户端

hadoop@master:/mysoftware/hbase-1.2.1$ bin/hbase shell

二:HBase 基本命令概览

HBase Shell的一些基本操作命令,列出了几个常用的HBase Shell命令,如下:

名称命令表达式
创建表create '表名称', '列名称1','列名称2','列名称N'
添加记录put '表名称', '行名称', '列名称:xxx', '值'
查看记录get '表名称', '行名称'
查看表中的记录总数count '表名称'
删除记录delete '表名' ,'行名称' , '列名称'
删除一张表先要屏蔽该表,才能对该表进行删除,第一步 disable '表名称' 第二步 drop '表名称'
查看所有记录scan "表名称"
查看某个表某个列中所有数据scan "表名称" , ['列名称:']
更新记录就是重写一遍进行覆盖

三:HBase基本命令小实用,以下步骤

四:.一般操作

1.查询服务器状态:status

hbase(main):002:0> status1 active master, 0 backup masters, 1 servers, 0 dead, 3.0000 average load

2.查询Hbase版本:version

hbase(main):003:0> vesionNameError: undefined local variable or method `vesion' for #

五:DDL操作

1.创建一张表userinfo :create 'userinfo','name','age'

hbase(main):011:0> create 'userinfo','name','age'0 row(s) in 1.3220 seconds=> Hbase::Table - userinfo

2.列出所有表:list

hbase(main):013:0> listTABLE                                                                                                                    table1                                                                                                                   userinfo                                                                                                                 2 row(s) in 0.0230 seconds=> ["table1", "userinfo"]

3.获得表的描述:describe

hbase(main):014:0> describe 'userinfo'Table userinfo is ENABLED                                                                                                userinfo                                                                                                                 COLUMN FAMILIES DESCRIPTION                                                                                              {NAME => 'age', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                                                                             {NAME => 'name', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                                                                            2 row(s) in 0.0430 seconds

4.查看表是否存在:exists

hbase(main):017:0> exists 'table2'Table table2 does not exist                                                                                            0 row(s) in 0.0210 seconds

5.判断表是否为:'enable'

hbase(main):018:0> is_enabled 'userinfo'true

6.判断表是否为:'disable'

hbase(main):019:0> is_disabled 'userinfo'false

7.删除一个列族 disable alter enable

hbase(main):003:0> disable 'table1'0 row(s) in 0.0230 secondshbase(main):004:0> alter 'table1',{ NAME => 't2' , METHOD => 'delete'}Updating all regions with the new schema...1/1 regions updated.Done.0 row(s) in 2.2240 secondshbase(main):005:0> enable 'table1'0 row(s) in 1.2990 seconds

然后在查看该列是否删除,看通过获得表的描述查看,如下: 只剩下列 't1'。

hbase(main):006:0> describe 'table1'Table table1 is ENABLED                                                                                                  table1                                                                                                                   COLUMN FAMILIES DESCRIPTION                                                                                              {NAME => 't1', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                                                                              1 row(s) in 0.0290 seconds

8.删除一个表:drop , 删除表前,需要先屏蔽该表。

hbase(main):007:0> disable 'table1'0 row(s) in 2.2910 secondshbase(main):008:0> drop 'table1'0 row(s) in 1.3030 seconds

六:DML操作

1.往userinfo中插入几条记录: put '表名','行名','列族名:xxx','value'

hbase(main):016:0> put 'userinfo','row1','name:col1','Berg'0 row(s) in 0.0870 secondshbase(main):017:0> put 'userinfo','row1','age:col2','22'0 row(s) in 0.0180 secondshbase(main):018:0> put 'userinfo','row2','name:col1','hadoophbase'0 row(s) in 0.0190 secondshbase(main):019:0> put 'userinfo','row2','age:col2','20'0 row(s) in 0.0180 seconds

2.全表扫描:scan

hbase(main):001:0> scan 'userinfo'ROW                             COLUMN+CELL                                                                               row1                           column=age:col2, timestamp=1463066528653, value=22                                        row1                           column=name:col1, timestamp=1463066505217, value=Berg                                     row2                           column=age:col2, timestamp=1463066598770, value=20                                        row2                           column=name:col1, timestamp=1463066577206, value=hadoophbase

3. 获得某一行的所有数据,也是获得某一行名的所有数据

hbase(main):003:0> get 'userinfo', 'row1'COLUMN                          CELL                                                                                      age:col2                       timestamp=1463066528653, value=22                                                         name:col1                      timestamp=1463066505217, value=Berg

4.获得某行,某列族,某列的所有数据

hbase(main):004:0> get 'userinfo','row1','name:col1'COLUMN                          CELL                                                                                      name:col1                      timestamp=1463066505217, value=Berg                                                      1 row(s) in 0.0190 seconds

5.更新一条记录 : put( name:col1的值更改为: BergBergBerg )

hbase(main):009:0> put 'userinfo','row2','name:col1','BergBergBerg'0 row(s) in 0.0720 seconds

获取更新后的值:

hbase(main):011:0> get 'userinfo','row2','name:col1'COLUMN                          CELL                                                                                      name:col1                      timestamp=1463067259346, value=BergBergBerg                                              1 row(s) in 0.0280 seconds

6.查询表中有多少行:count

hbase(main):012:0> count 'userinfo'2 row(s) in 0.0450 seconds=> 2

7.删除 某行 某列族的值:delete

hbase(main):023:0> delete 'userinfo','row2','age:col2'0 row(s) in 0.0140 secondshbase(main):024:0> scan 'userinfo'ROW                             COLUMN+CELL                                                                               row1                           column=age:col2, timestamp=1463066528653, value=22                                        row1                           column=name:col1, timestamp=1463066505217, value=Berg                                     row2                           column=name:col1, timestamp=1463067259346, value=BergBergBerg                            2 row(s) in 0.0300 seconds

8.删除整行的值:deleteall

hbase(main):026:0> deleteall 'userinfo','row2'0 row(s) in 0.0190 secondshbase(main):027:0> scan 'userinfo'ROW                             COLUMN+CELL                                                                               row1                           column=age:col2, timestamp=1463066528653, value=22                                        row1                           column=name:col1, timestamp=1463066505217, value=Berg                                    1 row(s) in 0.0320 seconds

9.给 row1 这行 age列,并使用counter实现递增 : incr (好吧,做这里的时候有点怪,原因无他,列族名没有取得好。。。。。)

hbase(main):024:0> incr 'userinfo','row1','age:id'COUNTER VALUE = 10 row(s) in 0.0170 secondshbase(main):025:0> incr 'userinfo','row1','age:id'COUNTER VALUE = 20 row(s) in 0.0210 secondshbase(main):026:0> incr 'userinfo','row1','age:id'COUNTER VALUE = 30 row(s) in 0.1270 seconds

获取当前counter的值:

hbase(main):027:0> get_get_auths     get_counter   get_splits    get_tablehbase(main):027:0> get_counter 'userinfo','row1','age:id'COUNTER VALUE = 3

10.将整个表清空:truncate

hbase(main):028:0> truncate 'userinfo'Truncating 'userinfo' table (it may take a while): - Disabling table... - Truncating table...0 row(s) in 4.3360 secondshbase(main):029:0> scan 'userinfo'ROW                             COLUMN+CELL                                                                              0 row(s) in 0.3490 seconds

关于"常用HBase shell命令有哪些"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0