HBase Shell工具操作HBase
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相关推荐
- HBase Shell 常用操作
HBase Shell 常用操作 2015年3月10日 by debugo · 19 Comments 本文转自http://debugo.com/hbase-shell-cmds/,感谢作者 HBa ...
- HBase Shell数据库操作
HBase Shell数据库操作 数据库表创建 HBase Shell 数据访问操作 HBASE 数据访问程序设计 数据库表创建 创建学生表(Student) ./bin/hbase shell cr ...
- java hbase 例子,java操作hbase例子
java操作hbase例子 java操作hbase,在eclipse中创建一个java项目,将hbase安装文件根目录的jar包和lib目录下jar包导入项目,然后就可以编写java代码操作hbase ...
- HBase(2) Java 操作 HBase 教程
一.简介 在上一篇文章 HBase 基础入门 中,我们已经介绍了 HBase 的一些基本概念,以及如何安装使用的方法. 那么,作为一名 Javaer,自然是希望用 Java 的方式来与 HBase 进 ...
- Hbase shell过滤操作
Get 和 Scan 操作都可以使用过滤器来设置输出的范围,类似于 SQL 里面的 Where 查询条件.使用 show_filters 命令可以查看当前 HBase 支持的 过滤器类型. show_ ...
- HBase Shell实例
HBase Shell 常用操作 1. 命名空间 2. DDL语句 3. put与get 4. 其他DML语句 5. scan和filter HBase Shell 常用操作 HBase Shell是 ...
- hbase linux 命令,在linux下操作hbase
在linux下操作hbase作者:bin 这个月比较忙,一直都没有时间整理最近学习的东西,T_T 这里介绍如何使用hbase shell进行操作hbase 具体的安装.配置,可以随意在网上找到,这里不 ...
- HBase Shell基础操作命令
HBase Shell命令操作 HBase为用户提供了一个非常方便的命令行操作方式,我们称之为HBase Shell. HBase提供了大多数HBase命令,通过HBase Shell 用户可以方便地 ...
- 大数据学习笔记:HBase Shell操作
文章目录 一.启动HBase Shell 二.HBase Shell操作 (一)help - 帮助命令 1.查看某个命令的帮助信息 2.查看某个命令组的帮助信息 (二)general - 通用类命令 ...
最新文章
- less里面calc() 语法
- atitit.设计模式(1)--—职责链模式(chain of responsibility)最佳实践O7 日期转换
- 标准模板库(STL)学习指南之vector向量
- springboot获取URL请求参数的几种方法
- python requests 异步调用_带有Python请求的异步请求
- How SAP concrete schema id is got based on transaction type plus catalog type
- Java中MySQL事务处理举例
- 微信小程序之阻止冒泡事件
- 复制给节点的命令_深入理解redis主从复制原理
- Runtime.getRuntime().exec()调用外部程序
- 2021 re:Invent ,我们到底该关注哪些发布?
- 用存储过程生成实体类
- 光储并网直流微电网控制策略及仿真模型
- 微信团队披露:微信界面卡死超级bug“15。。。。”的来龙去脉
- win2003 启用了Internet Explorer增强的安全配置
- java频繁的读写文件_大量较为频繁读写的文件一般如何进行存储?
- 听《武志红的心理课之潜意识就是命运》有感 命运,这个东西信者有,不信者无。我很赞同武老师的观点,一个热的外在命运和我们的内在想象,是镜像关系。这不禁让我想起了小时候的一个故事:一群青蛙比赛爬山,很多人
- 电赛综合测评题练习(一)-(与2013年电赛综合测评要求类似)
- python编程设计大学ppt_上海交通大学-python程序设计课程PPT-Ch7-(1)...ppt
- Steam/Epic已经安装的游戏不在库里显示
热门文章
- html 在ie下显示黑屏,win10 ie会黑屏怎么处理?win10 ie打开黑屏解决教程
- 【Bug】C# IQueryable里的元素更改不了值
- 2017-10-21 白鹿原随想
- java中set集合_java中怎么往集合类set里添加数据??
- JSP page对象简介说明
- JSP的page对象
- window docker国内镜像设置
- android intent-filter作用,Android--Intent和IntentFilter详解
- PhotoDive App
- sql delete删除列_现有表操作中SQL DELETE列概述