Hbase shell命令 基本使用

常用命令组

在 Hbase Shell 单元中,可以通过 help命令来查看有哪些命可以使用。而这些命令按照功能范围可以分为若干组 ,这里选取常用的命令组进行详细介绍:

  1. 通用操作
  2. DDL操作
  3. DML操作
  4. 安全操作

1. 通用操作

status

status命令用于返回Hbase集群的状态,包括 master、RegionServer的数量和活跃情况,还包括集群的负载情况。

可加字段(参数)simple、summary、detailed。使用三者中的一个即可,可以获取更加详细的信息,记住必须给所加的字段加上引号!

代码演示

status 'summary'

输出结果

在这里插入图片描述


version

返回hbase的版本
在这里插入图片描述

whoami

whoami命令用于返回Hbase用户详细信息。如果执行这个命令,返回当前Hbase用户。
代码演示

whoami

输出结果

在这里插入图片描述



table_help

table_help命令引导用户如何使用表引用的命令。当使用此命令时,会显示帮助主题表的相关命令。

2. DDL操作

create

create命令用于创建一张新的表,在创建时必须输入表的名称和ColumnFamily的名称。

用法1:只创建一个新表,而不定义列族属性
语法格式create '表名',{NAME => '列族名1'},{NAME => '列族名2'}, ...
简化格式create '表名' ,'列族名1','列族名2, ...'

用法2:在建立新表时,可以同时修改表属性
语法格式create '表名',{NAME => '列族名1',属性名 => 属性值}, {NAME => '列族名2',属性名 => 属性值}, ...

示例:创建 test 表,包含1个名字为 info 的列族,并指定单元格值的最大版本数为5
在这里插入图片描述

附:常见的列族属性说明如下:

NAME:列族名称,
 
BLOOMFILTER:布隆过滤器,
 
VERSIONS:列值的最大版本数量,
 
MIN_VERSIONS:列值保留的最小版本数量,
 
DATA_BLOCK_ENCODING:是否数据块编码,
 
IN_MEMORY:数据是否优先存于内存中,
 
BLOCKCACHE:是否开启数据块缓存,
 
BLOCKSIZE:设置HBASE默认块大小,
 
TTL:列版本数据的生存时间,
 
COMPRESSION:数据压缩方式,
 
REPLICATION_SCOPE:跨集群复制的范围,
 
KEEP_DELETED_CELLS:是否保留删除的单元格。



list

List命令用于列出数据库中所有的表名,用于查询数据库中的表
语法listlist '通配符'
示例:查看数据库中存在以 t 开头的表
在这里插入图片描述



alter

  1. 新建/修改 列族。若传入新的列族名则可以新建列族;若传入的列族名已经存在,则可以修改列族属性。

    建立/修改一个列族的命令格式如下:
    alter '表名',NAME=>'列族名',属性名1'=>'属性值1','属性名2'=>'属性值2',...

    修改/建立多个列族的命令如下:
    alter '表名',NAME=>'列族名',属性名1'=>'属性值1','属性名2'=>'属性值2',...

    修改列族属性
    修改列族属性:alter '表名',{NAME=>'列族名1',属性名1'=>'属性值1','属性名2'=>'属性值2',...},{NAME=>'列族名2',属性名1'=>'属性值1','属性名2'=>'属性值2',...}

    常见的列族属性:

BLOOMFILTER :布隆过滤器,是Hbase系统中的高级功能,主要用于提高特定访问模式下的查询速度

TTL:用于限定数据的超时时间,即每个Cell的数据的超时时间(当前时间——最后的更新时间)

COMPRESIONS:设置压缩格式,可以间接提高查询效率,但是会影响写入的效率

REPLICATION_SCOPE:表的复制范围

MIN_VERSION

BLOCKSIZE

IN_MEMORY

  1. 删除列族
    alter '表名',‘delete’=>'列族名'

  2. 修改表级别属性

    alter '表名',属性名1'=>'属性值1','属性名2'=>'属性值2',...
    常见的表级属性:

MAX_FILESIZE:表示设置最大文件大小
 
READONLY:表示设置表为只读
 
MEMSTORE_FLUSHSIZE:表示HReigon上设置的一个阈值,当MemStore的大小超过这个阈值时,将会发起Flush请求
 
DEFERRED_LOG_FLUSH:表示延迟日志刷写
 
DURABILITY:HBase的预写日志
 
REGION_REPLICATION
 
NORMALIZATION_ENABLED
 
PRIORITY
 
IS_ROOT
 
IS_META
  1. 删除表级别属性

    alter '表名',METHOD => 'table_att_unset',NAME => 属性名

  2. 删除表级别属性。一般情况下,用户都会把这个表/列族的配置属性设置在hbasesite.xml文件中。现在alter命令给了用户一个可以更改专属于这个表/列族的配置属性值的机会。其命令格式如下:
    alter '表名',CONFIGURATION => {'配置名' => '配置值'}
    or
    alter '表名',{NAME => '列族名',CONFIGUREATION => {'配置名' => '配置值'}}

  3. 并行执行多个命令。可以把前面介绍的这些命令都放到一条命令中同时执行。其命令格式如下:
    alter '表名',命令1,‘命令2’,‘命令3’


disable

Disable命令用于停用指定表。若要删除表或改变其数据,首先要使用disable命令关闭标,若要重新启动此标,则使用enable命令

语法disable '表名'
示例:禁用 test 表
在这里插入图片描述



disable_all

用通过正则表达式来停用读个表及禁用所有匹配给定正则表达式的表



is_disabled

查看验证表是否被禁用



enable

功能:用来启动指定表
格式:enable '表名'
在这里插入图片描述



enable_all

通过正则表达式来启动指定表及其用所有匹配给定正则表达式的表



is_enabled

用于查找表是否被启用



describe

功能:用于输出表的描述信息

格式:describe '表名'

简写形式:desc '表名'

示例:查看 ‘student’ 表的详细信息
在这里插入图片描述

exists

判断指定表是否存在
格式:exists '表名'

示例:判断‘student’表是否存在
在这里插入图片描述



drop

功能:删除指定表,在删除表之前必须先禁用要删除的表
格式:drop '表名'

示例:删除’student’表
在这里插入图片描述



drop_all

用于通过正则表达式来删除多个表及删除所有匹配给定正则表达式的表



3. DML操作

scan

功能:用于查看HTable数据,及使用scan命令可以得到表中的数据。
格式:scan '表名'

示例:查看‘student’表中的数据
在这里插入图片描述
但是在实际应用中一般并不会进行全表扫描,这样子太浪费时间

  • 扫描限定列
    scan '表名',{COLUMNS => '列族:列名'}

  • 指定行键范围。指定行间范围的scan命令通过传入起始行键(STARTROW)和结束行键(ENDROW)来遍历指定行键范围的记录。其中STARTROW和ENDROW都是可选的参数,可以不输入。如果不输入ENDROW,就从 STARTROW一直显示下去直到表的结尾,如果不输入STARTROW,就会从表头一直遍历到ENDROW。此处强烈建议每次调用scan命令时,至少指定起始行键或者结束行键,这样都会极大地加速遍历速度。其命令格式如下:
    scan '表名',{STARTROW => '起始行键',END_ROW => '结束行键'}

  • 指定最大返回行数
    scan '表名',{LIMIT => 行数}

  • 指定时间戳范围
    scan '表名',{TIMERANGE => [最小时间戳, 最大时间戳]}

  • 显示单元格的多个版本
    scan '表名',{VERSION => 版本数}

  • 显示原始单元格记录。带显示原始单元格记录的scan命令用于显示原始记录,即被打上墓碑标记的数据,通过添加ROW参数可以显示原始记录
    scan '表名',{RAW => true,VERSION => 版本数}



put

Put 命令在新增记录的同时,还可以为记录设置属性

最简命令参数:
put '表名','行键','列族:列名','值'

加上后面可以加的参数后的命令:
put '表名','行键','列族:列名','值','时间戳',{ATTRIBUTES => {'属性' => '属性值'}},{VISIBILITY => 'PRIVATE | SECRET'}

示例:向 ‘student’ 表中 info列族 name列 插入一条数据 ‘zs’
在这里插入图片描述



get

scan命令可以查询到多条数据而 ,get命令只能查询一个单元格的记录

get '表名','行键'

示例:获取 ‘student’表中 行键位 ‘s1’ 的数据取出
在这里插入图片描述



append

我骗你的命令适用于给某个单元格的,直接上新的直



delete

Do you to命令适用于删除某个列的数据



deleteall

删除整行数据也可以删除单列数据



count

用于计算表的行数量



get_splits

用于获取表所对应的region数个数



truncate

禁止删除并重新创建一个表。这个命令跟关系型数据库中同名的命令实现的功能是一样的,吉清空表内数据保留表的属性



truncate_preserve

清空表内数据,但是她会保留表所对应的region当用户,希望保留region的拆分规则时,可以使用它,避免重新制定region拆分规则

4. 安全操作

list_security_capabilities

用于列出所有支持的安全特性



grant

瘦于特定的权限,如图形执行和管理表,给定一个特定的用户



revoke

用于撤销用户访问表的权限



user_permission

列出特定标的所有权限或指定用户,针对指定表的权限

  • 7
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值