Hbase常用shell命令

作者: HideOnStream | 来源:发表于2019-11-10 18:07 被阅读0次

    前置工作:搭建好Hbase集群并启动,然后通过hbase shell命令进入Hbase的shell环境。

    Hbase shell命令基本操作
    1. help
      帮助命令,查看hbase包含的命令,以及基本的用法。
    help
    
    1. list
      查看表操作。查看当前数据库中有哪些表。
    list
    
    1. create
      创建表操作。创建表的语法有2种。
    create '表名', '列族1', '列族2', ...
    # 或者
    create '表名', {NANE => '列族1', VERSION => '版本数'}, {NAME => '列族2'}, ...
    
    1. disable && drop
      删除表操作。删除表之前,必须先让该表为disable状态,使用命令:
    disable '表名'
    

    然后,使用drop命令删除这个表:

    drop '表名'
    
    1. put
      插入数据操作。向表中插入数据,使用put命令。
      语法格式为:
    put '表名', 'rowkey', '列族名:列名', '值'
    
    1. get
      查询数据操作。
    • 获取指定rowkey的所有信息
      语法格式为:
    get '表名', 'rowkey'
    
    • 获取指定rowkey下某些列族的信息
      语法格式为:
    get '表名', 'rowkey', '列族名1', '列族名2', ...
    # 或者:
    get '表名', 'rowkey', {COLUMN => ['列族1', '列族2', ...]}
    
    • 获取指定rowkey下的某些列族的某些列的信息
      语法格式为:
    get '表名', 'rowkey', '列族1:列1', '列族2:列2', ...
    # 或者
    get '表名', 'rowkey', {COLUMN => ['列族1:列1', '列族2:列2', ...]}
    # 或者将上边2种语法结合起来
    get '表名', 'rowkey', '列族1:列1', '列族2', ...
    # 或者
    get '表名', 'rowkey', {COLUMN => ['列族1:列1', '列族2']}
    
    1. scan
      查询数据操作。get与scan的区别在于,get只能获取一行数据的全部或者部分信息;scan可以获取一行或者多行的全部或者部分信息。
    • 查询所有行
    scan '表名'
    
    • 查询一个或者多个列族的信息
    scan '表名', {COLUMM => ['列族名1', '列族名2', ...]}
    # 指定版本个数
    scan '表名', {COLUMM => ['列族名1', '列族名2', ...], VERSION => 版本个数}
    
    • 查询一个或者多个列族下的列的信息
    scan '表名', {COLUMN => ['列族1:列1', '列族2', ...]}
    # 指定版本个数
    scan '表名', {COLUMN => ['列族1:列1', '列族2', ...], VERSION => 版本个数}
    
    • 根据rowkey进行范围查询
    scan '表名', {COLUMN => '列族名', STARTROW => '开始rowkey', ENDROW => '结束rowkey'}
    

    包含STARTROW这行数据,不包括ENDROW这行数据。

    • 指定数据版本的范围查询
    scan '表名', {TIMERANGE => [时间戳1, 时间戳2]}
    
    1. delete
      删除数据操作。
    • 指定rowkey删除
    delete '表名', 'rowkey'
    
    • 指定rowkey以及列名删除
    delete '表名', 'rowkey', '列族名:列名'
    # 指定版本号
    delete '表名', 'rowkey', '列族名:列名', 时间戳
    
    1. alter
      修改表操作。
    • 更新版本号
    alter '表名', NAME => '列族', VERSION => 版本数
    
    • 删除列族
    alter '表名', NAME => '列族名', METHOD => 'delete'
    # 或者
    alter '表名', 'delete' => 'info'
    
    1. truncate
      清空表操作。
    truncate '表名'
    
    1. count
      统计表有多少数据行。
    count '表名'
    
    1. FILTER
      过滤器。一般与get或者scan配合一起使用,对查询出来的结果进行过滤。
    • 列值过滤器查询
    # 根据列的值过滤
    get '表名', 'rowkey', {FILTER => "ValueFilter(=, 'binary:列的值')"}
    # 多行
    scan '表名', {COLUMN => '列族', FILTER => "ValueFilter(=, 'binary:列的值')"}
    
    • 列值模糊查询
    # 根据列的值包含子串过滤
    scan '表名', {COLUMNS => ['列族', ...], FILTER => "(QualifierFilter(=,'substring:列值'))"}
    或者
    get '表名', 'rowkey', {FILTER => "(QualifierFilter(=,'substring:列值'))"}
    
    • rowkey模糊查询
    scan '表名', {FILTER => "PrefixFilter('前缀值')"}
    
    Hbase高级shell管理命令
    1. status
      例如显示服务器状态:
    status 'node01'
    
    1. whoami
      显示hbase当前用户。
    whoami
    
    1. list
      显示所有的表。
    list
    
    1. count
      统计指定表的记录数。
    count '表名'
    
    1. describe
      展示表的结构信息。
    describe '表名'
    
    1. exists
      检查表是否存在,适用于表特别多的情况。
    exists '表名'
    
    1. is_enabled && is_disabled
      检查表是否禁用或者启用。
    is_enabled '表名'
    is_disabled '表名'
    
    1. alter
      该命令可以改变表或者列族的模式,如:
    • 为当前表增加列族:
    alter '表名', NAME => '列族名', VERSIO N=> 版本数
    
    • 为当前表删除列族
    alter '表名', 'delete' => '列族名'
    
    1. enable && disable
      启用或者禁用一张表。
    enable '表名'
    disable '表名'
    

    相关文章

      网友评论

        本文标题:Hbase常用shell命令

        本文链接:https://www.haomeiwen.com/subject/mucwbctx.html