zoukankan      html  css  js  c++  java
  • 【hbase】hbase的shell操作笔记

    HBase Shell

    $ ./bin/hbase shell   # 进入交互界面

    DDL操作:

    1. create:创建表(默认命名空间为default)

      # create '表名','列族1','列族2'...
      hbase(main):005:0> create 'student','info'
      0 row(s) in 1.4250 seconds
      => Hbase::Table - student
    1. list:列出所有table

      hbase(main):005:0> list     # 列出所有的Table
      TABLE                                                                                 
      student                                                                               
      1 row(s) in 0.0160 seconds
      => ["student"]
    2. describe '表名':查看表详细信息

      # 查看表详细信息describe
      hbase(main):007:0> describe 'student'
      Table student is ENABLED                                                               
      student                                                                               
      COLUMN FAMILIES DESCRIPTION                                                           
      {NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'} 
      1 row(s) in 0.1090 seconds
      • NAME:列族名

      • BLOOMFILTER:布隆过滤器

      • VERSIONS:版本数,当前列族可以存多少版本

    3. alter:修改某列族的信息:

      # alter '表名',{NAME=>'列族名' ....}
      # 比如:修改VERSION版本数
      hbase(main):011:0> alter 'student',{NAME=>'info',VERSIONS=>3}
      hbase(main):012:0> describe 'student' # 再次查看
      {NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '3',....
    4. 删除表,需要先disabled

      # 删除表,需要先disabled,再drop
      hbase(main):016:0> disable 'student'
      hbase(main):017:0> drop 'student'

    命名空间:

    1. 查看命名空间:list_namespace

      hbase(main):019:0> list_namespace
      NAMESPACE                                                                             
      default                                                                               
      hbase
      2 row(s) in 0.0330 seconds
    2. 创建命名空间:create_namespace '空间名'

      hbase(main):020:0> create_namespace 'bigdata'
    3. 创建表到指定命名空间

      hbase(main):022:0> create 'bigdata:student','info'
      0 row(s) in 2.2200 seconds
      => Hbase::Table - bigdata:student
    4. 删除命名空间:drop_namespace (必须是空的命名空间,要先删表)

      hbase(main):023:0> disable 'bigdata:student'
      0 row(s) in 2.2510 seconds
      hbase(main):024:0> drop 'bigdata:student'
      0 row(s) in 1.2370 seconds
      hbase(main):026:0> drop_namespace 'bigdata'
      0 row(s) in 0.8750 seconds

    DML

    1. put:增加,修改数据

      # put '表名','RowKey','列族:列名','数据'
      hbase(main):030:0> put 'test','1001','info1:name','zhangsan'
    2. scan:扫描查询(最大范围是查整个table)

      # 注意:下面查询结果为3条数据
      hbase(main):040:0> scan 'test'
      ROW                     COLUMN+CELL                                                   
       1001                   column=info1:age, timestamp=1571381227061, value=17
       1001                   column=info1:name, timestamp=1571380877053, value=zhangsan     
       1001                   column=info2:addr, timestamp=1571381241065, value=shanghai     
       1002                   column=info1:age, timestamp=1571381266364, value=16           
       1002                   column=info1:name, timestamp=1571381256744, value=lily         
       1002                   column=info2:addr, timestamp=1571381276540, value=beijing     
       1003                   column=info2:addr, timestamp=1571381290769, value=nanjing     
      3 row(s) in 0.0590 seconds
      # 查看,左闭右开区间
      hbase(main):044:0> scan 'test',{STARTROW=>'1001',ENDROW=>'1003'}
      # 查看,覆盖的版本,已经type
      hbase(main):059:0> scan 'test',{RAW=>TRUE,VERSIONS=>3}
      ROW                     COLUMN+CELL                                                   
       1001                   column=info1:age, timestamp=1571381227061, value=17           
       1001                   column=info1:name, timestamp=1571382287224, type=DeleteColumn 
       1001                   column=info1:name, timestamp=1571382179439, value=zhangsansan 
       1001                   column=info1:name, timestamp=1571382130052, value=zhang       
       1001                   column=info2:addr, timestamp=1571381241065, value=shanghai     
       1002                   column=info1:age, timestamp=1571381266364, value=16           
       1002                   column=info1:name, timestamp=1571381256744, value=lily         
       1002                   column=info2:addr, timestamp=1571381276540, value=beijing     
       1003                   column=info2:addr, timestamp=1571381290769, value=nanjing
    3. get:查询(最大范围是查RowKey)

      # 查看一条数据,一个RowKey
      hbase(main):041:0> get 'test','1001'
      COLUMN                  CELL                                                           
       info1:age              timestamp=1571381227061, value=17                             
       info1:name             timestamp=1571380877053, value=zhangsan                       
       info2:addr             timestamp=1571381241065, value=shanghai                       
      1 row(s) in 0.0050 seconds
      # 查看某列
      hbase(main):042:0> get 'test','1001','info1:name'
      COLUMN                  CELL                                                           
       info1:name             timestamp=1571380877053, value=zhangsan
    4. delete:删除数据,在shell命令中必须指定到列,API中可以指定到列族

      # 指定到列
      hbase(main):054:0> delete 'test','1001','info1:name'
    5. alter:变更表信息

      # 将info列族修改为可以存放3个版本
      hbase(main):004:0> alter 'stu',{NAME=>'info',VERSIONS=>3}
    6. 多版本查询

      hbase(main):007:0> get 'stu','1001',{COLUMN=>'info:name',VERSIONS=>3}
      COLUMN                  CELL                                                           
       info:name              timestamp=1571383299883, value=lucy                           
       info:name              timestamp=1571383293258, value=lily
  • 相关阅读:
    NSLayoutAttribute
    iOS自动布局
    UIView animateWithDuration 使用详解
    objective-c calendar 日历(2)
    objective-c calendar 日期
    ElasticSearch学习笔记
    PAT007 六度空间
    PAT006 Tree Traversals Again
    PAT005 Path in a Heap
    PAT004 Root of AVL Tree
  • 原文地址:https://www.cnblogs.com/mussessein/p/11698560.html
Copyright © 2011-2022 走看看