zoukankan      html  css  js  c++  java
  • hbase的shell命令

    1. 查看HBase状态

      hbase(main):001:0> status
      1 active master, 0 backup masters, 2 servers, 0 dead, 33.0000 average load
      
      • 1
      • 2
    2. 查看HBase版本

      hbase(main):002:0> version
      1.2.0-cdh5.12.1, rUnknown, Thu Aug 24 09:45:34 PDT 2017
      
      • 1
      • 2
    3. 查看当前用户

      hbase(main):003:0> whoami
      root (auth:SIMPLE)
      	groups: root, supergroup
      
      • 1
      • 2
      • 3
    4. 查看对某张表进行操作的基本命令

      hbase(main):004:0> table_help
      ...
      
      • 1
      • 2
    5. 查看所有表

      hbase(main):005:0> list
      TABLE                                                                                                                                                                                        
      HBASE_TEST1                                                                                                                                                                                   
      HBASE_TEST2                                                                                                                                                                                  
      29 row(s) in 0.0570 seconds
      
      => ["HBASE_TEST1", "HBASE_TEST2"]
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
    6. 创建表

      语法:

      create <table> , { NAME => <family> , VERSIONS => <VERSIONS> , ...}, { NAME => <family> , VERSIONS => <VERSIONS> , ...}
      
      • 1
      hbase(main):008:0> create 'test', 'cf'
      0 row(s) in 1.2240 seconds
      
      => Hbase::Table - test
      
      • 1
      • 2
      • 3
      • 4
    7. 判断表是否存在

      语法:

      list <table>
      
      • 1
      hbase(main):009:0> list 'test'
      TABLE                                                                                                                                                                                        
      test                                                                                                                                                                                         
      1 row(s) in 0.0030 seconds
      
      => ["test"]
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      语法:

      exists <table> 
      
      • 1
      hbase(main):015:0> exists 'test'
      Table test does exist                                                                                                                                                                        
      0 row(s) in 0.0200 seconds
      
      hbase(main):016:0> exists 'test1'
      Table test1 does not exist                                                                                                                                                                   
      0 row(s) in 0.0120 seconds
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
    8. 查看表结构

      语法:

      describe <table> 
      
      • 1
      hbase(main):010:0> describe 'test'
      #或
      hbase(main):010:0> desc 'test'
      Table test is ENABLED                                                                                                                                                                        
      test                                                                                                                                                                                         
      COLUMN FAMILIES DESCRIPTION                                                                                                                                                                  
      {NAME => 'cf', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIO
      NS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}                                                                                                             
      1 row(s) in 0.1100 seconds
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9

      其中的属性的意义:

      属性说明
      NAME 列族名
      VERSIONS 最大版本号
      MIN_VERSIONS 最小版本号
      TTL(Time To Live) 存活时间
      IN_MEMORY 是否开启缓存,默认false,应该开启,否则与BLOCKCACHE冲突
      BLOCKCACHE 读缓存是否开启,默认开启,64M
    9. 添加数据

      语法:

      put <table>, <rowkey>, <family:column>, <value>, <timestamp>
      
      • 1

      timestamp 系统默认

      hbase(main):017:0> put 'test', 'row1', 'cf:a', 'value1'
      0 row(s) in 0.4670 seconds
      
      hbase(main):018:0> put 'test', 'row2', 'cf:b', 'value2'
      0 row(s) in 0.0110 seconds
      
      hbase(main):019:0>  put 'test', 'row3', 'cf:c', 'value3'
      0 row(s) in 0.0070 seconds
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
    10. 全表扫描

      语法:

      scan <table> , {COLUMNS => [<family:column>,...], LIMIT => num}
      
      • 1

      扫描全表

      hbase(main):020:0> scan 'test'
      ROW                                              COLUMN+CELL                                                                                                                                 
       row1                                            column=cf:a, timestamp=1558942138361, value=value1                                                                                          
       row2                                            column=cf:b, timestamp=1558942146386, value=value2                                                                                          
       row3                                            column=cf:c, timestamp=1558942153915, value=value3                                                                                          
      3 row(s) in 0.0690 seconds
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      扫描指定列族

      hbase(main):021:0> scan 'test' ,{COLUMNS => 'cf'}
      ROW                                              COLUMN+CELL                                                                                                                                 
       row1                                            column=cf:a, timestamp=1558942138361, value=value1                                                                                          
       row2                                            column=cf:b, timestamp=1558942146386, value=value2                                                                                          
       row3                                            column=cf:c, timestamp=1558942153915, value=value3                                                                                          
      3 row(s) in 0.0130 seconds
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      设置开启Raw模式,开启Raw模式会把那些已添加删除标记但是未实际删除的数据也显示出来

      scan 'test', {COLUMNS => 'cf', RAW => true}
      
      • 1

      查询test表中列族为info和data的信息
      scan ‘test’, {COLUMNS => [‘cf’, ‘a’]}
      查询test表中列族为cf,列名为a的信息

      hbase(main):039:0> scan 'test', {COLUMNS => ['cf:a']}
      ROW                                              COLUMN+CELL                                                                                                                                 
       row1                                            column=cf:a, timestamp=1558942138361, value=value1                                                                                          
      1 row(s) in 0.0070 seconds
      ```shell
      查询user表中列族为info,列名为name的信息,并且版本最新的5个
      ```shell
      scan 'user', {COLUMNS => 'info:name', VERSIONS => 5}
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

      查询user表中列族为info和data且列名含有a字符的信息

      scan 'user', {COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"}
      
      • 1

      查询user表中列族为info,rk范围是[rk0001, rk0003)的数据

      scan 'people', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0003'}
      
      • 1

      查询user表中row key以rk字符开头的

      scan 'user',{FILTER=>"PrefixFilter('rk')"}
      
      • 1

      查询user表中指定时间范围的数据

      scan 'user', {TIMERANGE => [1392368783980, 1392380169184]}
      
      • 1

      查询满足条件的前5条数据

      hbase(main):024:0> scan 'test' ,{LIMIT => 5}
      ROW                                              COLUMN+CELL                                                                                                                                 
       row1                                            column=cf:a, timestamp=1558942138361, value=value1                                                                                          
      1 row(s) in 0.0180 seconds
      
      • 1
      • 2
      • 3
      • 4

      scan的用法很多,参数,过滤条件可以各种组合。参考help 'scan'

    11. 查询某行记录

      语法:

      get <table>, <rowkey>, { <family:column>...}
      
      • 1
      hbase(main):041:0> get 'test', 'row1'
      COLUMN                                           CELL                                                                                                                                        
       cf:a                                            timestamp=1558942138361, value=value1                                                                                                       
      1 row(s) in 0.0130 seconds
      
      • 1
      • 2
      • 3
      • 4
    12. 查询表数据的行数

      语法:

      count <table>, {INTERVAL => intervalNum ,CACHE => cacheNum}
      
      • 1

      INTERVAL 设置多少行显示一次及对应的rowkey,默认1000。
      CACHE 每次去取的缓存区大小,默认10,调整该参数可提高查询速度。

      hbase(main):001:0> count 'MY_SCHEMA:PERSONAS', {INTERVAL => 100 ,CACHE => 500}
      Current count: 100, row: 0490ec15106068238                                                                                                                                                
      Current count: 200, row: 0920b813602752880                                                                                                                                                
      Current count: 300, row: 0db35c15900425591                                                                                                                                                
      Current count: 400, row: 124e8915900828482                                                                                                                                                
      Current count: 500, row: 16e0d113902624856                                                                                                                                                
      559 row(s) in 11.2610 seconds
      
      => 559
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
    13. 删除数据

      语法:

      delete <table>, <rowkey>, <family:column>, <timestamp> 必须指定列名。
      
      • 1
      hbase(main):004:0> delete 'test','row1','cf:a' 
      0 row(s) in 0.0880 seconds
      
      • 1
      • 2

      注: 删除表test中row1行中cf:a列所有版本的数据

    14. 删除行

      语法:

      deleteall <table>, <rowkey>, <family:column>, <timestamp> 
      可以不指定列名,删除整行数据。
      
      • 1
      • 2
      hbase(main):003:0> deleteall 'test','row2'
      0 row(s) in 0.0310 seconds
      
      • 1
      • 2
    15. 删除表中的所有数据

      语法:

      truncate <table>
      
      • 1

      具体过程是: disable table -> drop table -> create table

      hbase(main):005:0> truncate 'test'
      Truncating 'test' table (it may take a while):
       - Disabling table...
       - Truncating table...
      0 row(s) in 3.6110 seconds
      
      • 1
      • 2
      • 3
      • 4
      • 5
    16. 修改数据
      语法:

      put  table>, <rowkey>, <family:column>, <value>, <timestamp> 
      可以不指定列名,删除整行数据。
      
      • 1
      • 2
      hbase(main):001:0> put 'test','rowkey001','cf:a','value1'
      0 row(s) in 0.2410 seconds
      
      hbase(main):002:0> scan 'test'
      ROW                                              COLUMN+CELL                                                                                                                                 
       rowkey001                                       column=cf:a, timestamp=1558945565238, value=value1                                                                                          
      1 row(s) in 0.0550 seconds
      
      hbase(main):003:0> put 'test','rowkey001','cf:a','value2'
      0 row(s) in 0.0030 seconds
      
      hbase(main):004:0> scan 'test'
      ROW                                              COLUMN+CELL                                                                                                                                 
       rowkey001                                       column=cf:a, timestamp=1558945576947, value=value2                                                                                          
      1 row(s) in 0.0040 seconds
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
    17. 删除表

      语法:

      drop <table>
      
      • 1

      注意: 在删除表前,需要先禁用表

      hbase(main):008:0> disable 'test'
      0 row(s) in 2.2680 seconds
      
      hbase(main):009:0>  drop 'test'
      0 row(s) in 1.2520 seconds
      
      hbase(main):011:0> exists 'test'
      Table test does not exist                                                                                                                                                                    
      0 row(s) in 0.0100 seconds
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
    18. 修改表结构

      增加列族
      语法:

      alter <table>, { NAME => <family> , VERSIONS => <VERSIONS> , ...} ...
      
      • 1
      hbase(main):015:0> alter 'test', 'add_family'
      Updating all regions with the new schema...
      1/1 regions updated.
      Done.
      0 row(s) in 1.9340 seconds
      
      • 1
      • 2
      • 3
      • 4
      • 5

      删除列族

      语法:

      alter <table>, { NAME => <family> , METHOD => 'delete'}
      
      • 1

      用法:

      alter 'table_name', {NAME => 'delete_family', METHOD => 'delete'}
      
      • 1

      或者

      alter 'table_name', 'delete' => 'delete_family'
      
      • 1

      示例:

      hbase(main):021:0> alter 'test', {NAME => 'add_family', METHOD => 'delete'},{NAME => 'add', METHOD => 'delete'}
      Updating all regions with the new schema...
      1/1 regions updated.
      Done.
      Updating all regions with the new schema...
      1/1 regions updated.
      Done.
      0 row(s) in 3.8020 seconds
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

      添加列族f1同时删除列族f2

      alter 'user', {NAME => 'f1'}, {NAME => 'f2', METHOD => 'delete'}
       
      • 1

      修改列族

      将user表的f1列族版本号改为5

      alter 'user', NAME => 'f1', VERSIONS => 5
      
      • 1
    19. 禁用表与启用表

      禁用表
      disable 'table_name'
      查看表是否禁用
      is_disabled 'table_name'
      启用表
      enable 'table_name'
      查看表是否启用
      is_enabled 'table_name'
  • 相关阅读:
    Spark入门实战系列--1.Spark及其生态圈简介
    理解JavaScript的原型链
    为什么overflow:hidden能达到清除浮动的目的?
    JavaScript中为什么需要!!?
    CSS品控与流程
    CSS高级特效(下)
    CSS高级特效(上)
    CSS变化、过渡与动画
    CSS表单与数据表(下)
    CSS表单与数据表(上)
  • 原文地址:https://www.cnblogs.com/xiatian21/p/14201543.html
Copyright © 2011-2022 走看看