Hbase shell基本操作,看这一篇够你用了

1.基本操作

     1. 进入 HBase客户端的命令

        hbase shell

     2. 查看帮助命令

       help

    3. 查看当前数据库有哪些表

      list

    4. 查看当前用户及对应所属组

     结果如下:

hbase(main):038:0> whoami
hbase (auth:SIMPLE)
    groups: hadoop

     5. 查看Hbase服务器状态

     

hbase(main):039:0> status
1 active master, 1 backup masters, 3 servers, 0 dead, 21.3333 average load

     6. 查看版本信息

    

hbase(main):040:0> version
1.1.2.1.1.0.0-0131, r8c3e6f0c9bb687c3caaafc932e38e6042ac73e0c, 2017年 11月 27日 星期一 15:16:41 CST

2.表的基本操作

     1. 创建表

hbase(main):006:0> create 'student','infor'

     2. 插入数据到表

hbase(main):008:0>  put 'student','1001','infor:sex','male'
0 row(s) in 0.0230 seconds

hbase(main):009:0> put 'student','1001','infor:age','18'
0 row(s) in 0.0130 seconds

hbase(main):010:0> put 'student','1002','infor:name','guozi'
0 row(s) in 0.0110 seconds

hbase(main):011:0> put 'student','1002','infor:sex','male'
0 row(s) in 0.0110 seconds

hbase(main):012:0> put 'student','1002','infor:age','18'
0 row(s) in 0.0110 seconds

     3. 扫描查看表数据

     (1)全表扫描

hbase(main):013:0> scan 'student'

     (2)按指定的rowkey查看

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

            结果如下:

       4. 查看表结构

hbase(main):015:0> describe 'student'

      5. 更新指定字段的数据

put 'student','1001','info:name','xiaoyanjing'

      6.查看“指定行”或“指定列族:列”的数据

     (1)获取指定行的数据

hbase(main):031:0> get 'student','1001'

       (2)获取指定字段值信息

hbase(main):033:0> get 'student','1001','infor:name'

       7. 统计表数据行数(记录数)

hbase(main):034:0> count 'student'

         结果如下:

       8. 删除数据

hbase(main):016:0> deleteall 'student','1001'
hbase(main):017:0> delete 'student','1002','infor:sex'

      9. 清空表数据

hbase(main):018:0>disable 'student'
hbase(main):018:0> truncate 'student'
*先禁止表,然后再清空

      10. 删除表

首先需要先让该表为 disable 状态:
hbase(main):019:0> disable 'student'
然后才能 drop 这个表:
hbase(main):020:0> drop 'student'
提示:如果直接 drop 表,会报错:ERROR: Table student is enabled. Disable it first.

       11. 变更表信息

        将infor列族中的信息存放三个版本

hbase(main):035:0> alter 'student',{NAME=>'infor',VERSIONS=>3}

       结果如下:

      查看内容:

hbase(main):037:0> get 'student','1001',{COLUMN=>'infor:name',VERSIONS=>3}

  12 修改表的压缩格式

   (1) 先disable表


hbase(main):018:0> disable 'test_dd‘


  (2) 修改表的压缩格式

hbase(main):018:0> alter 'test_dd', NAME => 'f', COMPRESSION => 'snappy‘

  ps:假如你不小心创建了一个新列族的话,可以通过以下方式删除

hbase(main):018:0> alter 'test_dd', {NAME=>'f', METHOD=>'delete'}

  (3) 重新enable

hbase(main):018:0> enable 'test_dd‘

(4)enable表后,HBase表的压缩格式并没有生效,还需要一个动作,即HBase major_compact

hbase(main):018:0> major_compact 'test_dd‘

  该动作耗时较长,会对服务有很大影响,可以选择在一个服务不忙的时间来做。

   describe一下该表,可以看到HBase 表压缩格式修改完毕。

  13 . 采用RowCounter快速统计Hbase中的表

        RowCounter相比于count要快很多,他利用map-reduce进行统计.

su - hbase
[hbase@bigdata3 ~]$ hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'test_dd'

    统计1千多万条数据总共耗时大概 51秒

  14. 查看Hbase表的meta表的数据

   Hbasemeta表的结构信息如下图所示:

scan ‘hbase:meta’

  目的是为了查看该表是由哪台服务器所维护,读写请求时候该向哪个服务器发送请求信息。

  scan ‘hbase:meta’往往得到的是Hbase中所有表的元信息,如果得到指定的表的元信息呢?

  利用下面的shell语句可以得到想要的表的信息

su - hbase
[hbase@bigdata3 ~]$ echo "scan 'hbase:meta'" | hbase shell | grep 'test_dd'

3.小结

      本文讲解了有关Hbase shell的一些基本命令,主要为针对Hbase数据库的增删改查操作,相应的每一条命令也对应java的一个API。

发布了11 篇原创文章 · 获赞 165 · 访问量 5374

猜你喜欢

转载自blog.csdn.net/godlovedaniel/article/details/104600637