HBase的shell工具是常用的工具,运维过程的DDL和DML都会通过此进行,其具体实现是用Ruby语言编写的,并且使用了JRuby解释器。该工具模式有两种常用的模式:交互模式和命令批处理模式。交互模式用于随机访问,而命令批处理模式通过使用shell编程来批量、流程化处理访问命令,常用于HBase集群运维和监控中的定时执行命令。

1,命令分类

选择一台HBase集群的节点(最好是客户端节点),进入HBase安装目录后执行bin/hbase shell,进入HBase shell交互模式,通过执行help命令,将输出一系列帮助信息如下:

COMMAND GROUPS:

Group name:general

Commands: status,version

......

从输出来看,shell的所有命令分为6组:常规(general)、DLL、DML、工具(tools)、复制(Replication)和安全(Security)。

2,常规命令:status:返回几圈状态信息;version:返回集群的HBase版本信息,其中第一个是版本号,第二部分是版本修订号,第三部分是编译HBase的时间。

3,DDL命令:即数据定义语言命令,包含的命令非常丰富,用于管理表相关的操作,包括常见表、修改表、上线和下线表、删除表、罗列表等操作,详细如下表所示:

 
命令 命令含义 命令使用实例
alter 修改表的列族的描述属性 alter 't1',NAME =>'f1',VERSIONS=>5
alter_async 异步修改聊的列族的描述属性,并不需要等待所有Region都完成操作。用法与alter命令相同 alter_async 't1',NAME=>'f1',VERSIONS=>5
alter_status 获取alter命令的状态,会标注已经有多少Region更改了schema。命令的参数是表名 alter_status 't1'
create 创建表 create 't1',{NAME=>'f1',VERSIONS=>5}
create 't1','f1','f2','f3'
describe 创建表的元数据信息和是否可用的状态 describe 't1'
disable 下线某个表 disable 't1'
disable_all 下线所有匹配正则表达式的表 disable_all 't.*'
drop 删除某个表 drop 't1'
drop_all 删除所有匹配正则表达式的表 drop_all 't.*'
enable 上线某个表 enable 't1'
enable_all 上线所有匹配正则表达式的表 enable_all  't.*'
exists 判断某个表是否存在 exists 't1'
is_disenabled 判断某个表是否下线 is_disabled 't1'
is_enabled 判断某个表是否在线 is_enabled 't1'
show_filters 查看所支持的所有过滤器的名称 show_filters
list 罗列所有表 list
 

4,DML命令:即数据操作语言命令,包含的命令非常丰富,用于数据的写入、删除、修改你、查询、清空等操作,这些命令的详细解决和使用示例如表所示:

 
count 统计表的总行数 count ‘t1'
count 't1',INTERVAL => 100000
count 't1',CACHE => 100
count 't1',INTERVAL => 10,CACHE=>10
delete 删除一个单元格 delete ’t1','r1','c1',ts1
delteall 删除一行或者一列 deleteall 't1','r1'
deleteall 't1','r1','c1'
deleteall 't1','r1','c1',ts1
get 单行读 get 't1','r1'
get 't1','r1'{TIMERANGE => [ts1,ts2]}
get 't1','r1',{COLUMN =>"c1'}
get 't1','r1',{COLUMN =>[c1,c2,c3]}
get 't1','r1',{COLUMN =>'c1',TIMESTAMP =>ts1}
get 't1','r1',{COLUMN =>'c1',TIMERANGE=>
[ts1,ts2],VERSION=4}
get 't1','r1',{COLUMN =>'c1',TIMESTAMP => ts1,
VERSION =>4}
get 't1','r1',{FILTER => "ValueFilter(=,'binary:abc')"}
get 't1','r1','c2'
get 't1','r1','c1','c2'
get 't1','r1',['c1','c2']
get_counter 读取计数器 get_counter 't1','r1','c1'
incr 自增写入 incr 't1','r1','c1'
incr 't1','r1','c1',1
put 数据 写入 put 't1','r1','c1','value',ts1
scan 扫描读 scan '.META.'
scan '.META',{COLUMNS => 'info:regioninfo'}
scan 't1',{COLUMNS => [c1,c2],LIMIT =>10,
STARTROW => 'xyz'}
scan 't1',{COLUMNS => ' c1',TIMERANGE =>[1303668804,1303668904]}
scan 't1',{FILTER => "(PrefixaFilter('row2') AND (QualifierFilter(>=,'binary:xyz')))AND
(TimestampsFilter(123,456))"}
truncate 清空表 truncate 't1'
 
     

5,tool命令提供了一些工具命令,组名称为Tools,这些命令多用于HBase集群的管理与调优。这些命令涵盖合并、分裂、负载均衡、日志回滚、Region分配和移动以及zookeeper信息查看等方面。每种命令的手捧玫瑰方法有多种,适用于不同的场景。例如合并命令compact,可以合并一张表、一个Region的某个列族,或一张表的某个列族。

 
命令 命令含义 命令使用实例
assign 分配Region assign ‘Region1’
balance_switch 启用或关闭负载均衡器,返回结果是当前均衡器状态 balance_switch true
balance_swich false
balancer 触发集群负载均衡器。如果成果运行则返回TRUE,很可能将所有Region重新分配。
如果FALSE,说明某些Region在rit状态,不会执行该命令
balancer
close_region 关闭某个Region close_region 'REGIONNAME'
close_region 'REGUIBBANE','SERVER_NAME'
compact 合并表或者Region compact 't1'
compact 'r1','c1'
compact 't1,'c1'
flush flush表或Region flush 'TABLENAME'
flush 'REGIONNAME'
hlog_roll HLog日志回滚,参数是regionserver的名字 hlog_roll 'regionName'
major_compact 大合并表或Region major_compact 't1'
major_compact 'r1','c1'
major_compact 't1','c1'
move 移动Region。如果没有目标regionserver,则随机选择一个节点 move 'ENCODED_REGIONNAME'
move 'ENCODED_REGIONNAME','SERVER_NAME'
split 分裂表或Region split ‘tablename'
split 'tablename' # format: 'tablename,startKey,id'
split 'tablename','splitKey'
split 'regionname','splitKey'
unassign 解除某个指定的Region unassign 'REGIONNAME'
usassign 'REGIONNAME',true
zk_dump 打印输出zookeeper的信息,包括HBase主节点,regionserver状态,以及zookeeper节点统计状态 zk_dump
 
     

6,复制命令用于HBase高级特性——复制的管理,可以添加、删除、启动和停止复制功能相关操作,但是因为HBase复制特性在0.94.*版本并不成熟,所以这里不展开讲解命令细节。

 
add_peer 添加对等集群,需要指定对等集群的ID、主机名、端口号和zookeeper的根路径 add_peer '1',"server1.cie.com:2181:/hbase"
add_peer '2',"zk1,zk2,zk3:2181:/hbase-prod"
disable_peer 停止到特定集群的复制流,但仍然保持对新改动的跟踪。参数是对等集群的ID disable_peer '1'
enable_peer 启用到对等集群的复制,从上次关闭的位置继续复制,参数是对等参数的ID enable_peer '1'
list_peers 罗列所有正在复制的对等集群 list_peers
remove_peer 停止某个复制流,并且山吹其对应的元数据信息。参数是对等集群的ID remove_peer '1'
start_replication 重启所有复制流,只用在负载达到临界的情况下 start_replication
stop_replication 关闭所有复制流,只用在负载达到临界的情况下
 
     

7,安全命令属于DCL(Data Control Language,数据控制语言)的范畴,HBase shell提供了三种安全命令:grant、revoke和user_permission。这三种命令并不是直接执行如表5-5所示的使用实例就可以使用,还需要两个前提条件:使用附带security的HBase版本和配置完成Kerberos安全认证。

 
grant 赋予用户特定的权限,权限集合是RWXCA:read,write,exec,create,admin grant 'bobsmith','RWXCA'
grant 'bobsmith','RW','t1','f1','col1'
revoke 撤销用户的特点权限 revoke ’bobsmith'
revoke 'bobsmith','t1','f1','col1'
user_permission 显示某用户的所有权限,如果加上参数——表名,则表示该用户在该表上的所有权限 user_permission
user_permission 'table1'
 

HBase Shell工具操作HBase相关推荐

  1. HBase Shell 常用操作

    HBase Shell 常用操作 2015年3月10日 by debugo · 19 Comments 本文转自http://debugo.com/hbase-shell-cmds/,感谢作者 HBa ...

  2. HBase Shell数据库操作

    HBase Shell数据库操作 数据库表创建 HBase Shell 数据访问操作 HBASE 数据访问程序设计 数据库表创建 创建学生表(Student) ./bin/hbase shell cr ...

  3. java hbase 例子,java操作hbase例子

    java操作hbase例子 java操作hbase,在eclipse中创建一个java项目,将hbase安装文件根目录的jar包和lib目录下jar包导入项目,然后就可以编写java代码操作hbase ...

  4. HBase(2) Java 操作 HBase 教程

    一.简介 在上一篇文章 HBase 基础入门 中,我们已经介绍了 HBase 的一些基本概念,以及如何安装使用的方法. 那么,作为一名 Javaer,自然是希望用 Java 的方式来与 HBase 进 ...

  5. Hbase shell过滤操作

    Get 和 Scan 操作都可以使用过滤器来设置输出的范围,类似于 SQL 里面的 Where 查询条件.使用 show_filters 命令可以查看当前 HBase 支持的 过滤器类型. show_ ...

  6. HBase Shell实例

    HBase Shell 常用操作 1. 命名空间 2. DDL语句 3. put与get 4. 其他DML语句 5. scan和filter HBase Shell 常用操作 HBase Shell是 ...

  7. hbase linux 命令,在linux下操作hbase

    在linux下操作hbase作者:bin 这个月比较忙,一直都没有时间整理最近学习的东西,T_T 这里介绍如何使用hbase shell进行操作hbase 具体的安装.配置,可以随意在网上找到,这里不 ...

  8. HBase Shell基础操作命令

    HBase Shell命令操作 HBase为用户提供了一个非常方便的命令行操作方式,我们称之为HBase Shell. HBase提供了大多数HBase命令,通过HBase Shell 用户可以方便地 ...

  9. 大数据学习笔记:HBase Shell操作

    文章目录 一.启动HBase Shell 二.HBase Shell操作 (一)help - 帮助命令 1.查看某个命令的帮助信息 2.查看某个命令组的帮助信息 (二)general - 通用类命令 ...

最新文章

  1. OC Block网上转载
  2. RD基本功——Shell、Bash与Linux环境变量配置
  3. el-amap 第一次正常第二次报错_flutter run: build tools revision 报错解决
  4. Winform下的键盘事件
  5. 【响应式编程的思维艺术】 (5)Angular中Rxjs的应用示例
  6. ORACLE 11G DATA GUARD配置之Dataguard简介
  7. workbench动力学周炬_ANSYS WORKBENCH有限元分析实例详解(动力学)
  8. 计算机computer英语划分音节,computer是什么意思
  9. Vue回炉重造之图片加载性能优化
  10. U3D Shader基础
  11. 饥饿游戏3:嘲笑鸟(下)[The Hunger Games: Mockingjay - Part 2]
  12. 记录载入页面时与 ws://XXX地址/sockjs-node/xxx/websocket 的连接中断---解决办法
  13. Mac DataGrip 闪退问题
  14. 上海理工大学高校计算机补办,上海理工大学关于2017上海市高校计算机等级考试报考通知...
  15. Kotlin Native - 原生平台 Hollo World!
  16. Hadoop自动化安装脚本
  17. Linux——详细模拟实现shell(进程控制综合运用)
  18. 【转】面向对象 -多线程 理论知识
  19. win11音频无声音排查解决方案
  20. 某产业园智慧园区管理系统项目质量管理案例【灵犀】

热门文章

  1. echarts+vue 实现大数据可视化(全屏)
  2. vue- canvas生成海报图
  3. vue 手机端背景图片变形问题解决
  4. QQ为何采用UDP协议?
  5. flex布局各种对齐方式
  6. Android 手机展示照片 会有90°旋转的问题的解决方案
  7. Mac终端添加ll命令
  8. python的IDLE下载、安装、使用教程和技巧
  9. 重来之大学版|社交生活篇—大学不谈恋爱是不是不完整?大学不谈恋爱正常吗?大学可以谈恋爱吗?
  10. 深入理解vue.js双向绑定的实现原理