内容简介:Hbase Shell 为 Hbase 提供了一套“简单方便”的命令行工具。使用它可以很好地与 Hbase 进行交互,例如查看 Hbase 集群状态、对 Hbase 数据进行增删改查操作等等。启动 Hbase 之后,我们可以通过 "hbase shell" 来进入 Hbase Shell 命令行。
本文将介绍一些开发以及运维工作中经常用到的 Hbase Shell 命令。作为开发以及运维人员这些常用命令是需要了解并经常使用的,当然可以不必将他们死记硬背下来。如果在某些场景下想到需要使用某个命令,但是又不知道具体的使用方法时,可以扫一眼这篇文章(熟练使用 mysql 命令的用户可能会觉得 hbase shell 命令的设计有点费解--!)。
Hbase Shell 为 Hbase 提供了一套“简单方便”的命令行工具。使用它可以很好地与 Hbase 进行交互,例如查看 Hbase 集群状态、对 Hbase 数据进行增删改查操作等等。启动 Hbase 之后,我们可以通过 "hbase shell" 来进入 Hbase Shell 命令行。
Hbase Shell 中运行 help 命令可以看到有哪些命令可以使用。这些命令按照功能范围被分成了很多组(Command Groups),每组都包含了若干个命令。本文我选取几个日常工作中常用的命令来进行介绍(对其他命令感兴趣的朋友,可以逐个百度或者 google 进行了解),这些命令主要分布在 general(通用)、ddl(data manipulation language:数据操作语言)、dml(data definition language:数据定义语言) 这些分组中。
General
- status
- version
- table_help
- whoami
status
status 命令显示 hbase 集群的状态,包括 master、region server 的数量和活跃情况,还包括集群的负载情况。
并且,我们还可以在 status 后面加上 'simple'、'summary' 或者 'detauled' 字段来获取更加详细的信息。这里,不加任何字段的 status 等同于 status 'summary'。
version
version 命令很好理解,就是查看 hbase 版本了。
table_help
一些关于表操作命令的帮助介绍(Help for table-reference commands)。
whoami
查询当前的 hbase 用户
DDL & DML
DDL 和 DML 这两类命令是工作中经常需要使用到的,并且两者关联性较大,所以这里将 这两类的命令放在一起讲解。
- list
- exists
- create
- describe
- put
- count
- scan
- get
- delete
- deleteall
list
列出数据库中所有表
exists
判断表是否存在 用法: exists '表名'
create
创建表 用法: create '表名','列族1','列族2'
hbase(main):007:0> create 'kooola','cf1','cf2'
例如上面的语句就创建了拥有两个列族(cf1、cf2)的表,表名为kooola
describe
查看表的结构 用法: describe '表名'
hbase(main):010:0> describe 'kooola' Table kooola is ENABLED kooola COLUMN FAMILIES DESCRIPTION {NAME => 'cf1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLO CKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'} {NAME => 'cf2', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLO CKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'} 2 row(s) in 0.0360 seconds
显而易见,查看刚刚创建的 kooola 表,发现有两个列族:cf1 和 cf2
put
向指定表插入数据 用法: put '表名','rowkey','列族:列名','值'。
列簇下的列不需要提前创建,插入值时通过'列族:列名'来指定就行,这意味着 hbase 对表结构的要求更加灵活
hbase(main):013:0> put 'kooola','xxxxxx1','cf1:name','march'
例如上面的命令,就是向 kooola 表中插入一行数据,其中 rowkey 为 xxxxxx1,cf1 列族的 name 列有一个值为 march
count
查询表的记录数 用法:count '表名'
hbase(main):002:0> count 'kooola' 1 row(s) in 0.0320 seconds
scan
查询表数据 用法: scan '表名' 当然你也可以增加一些过滤器来指定查询条件。
我们可以认识一些关键字,例如 COLUMN 和 COLUMNS 进行列族、列过滤;STARTROW 和 STOPROW 用以标识起始、终止rowkey;LIMIT 指定查询的个数;VERSIONS 指定版本。
hbase(main):001:0> scan 'kooola' 查询所有数据
scan 'kooola', {COLUMN=>'cf1'} 指定列族进行查询
scan 'kooola', {COLUMNS=> 'cf1:name'} 指定列进行查询
scan 'kooola', { STARTROW => 'xxxxxx1', LIMIT=>2, VERSIONS=>1} rowkey 从 xxxxxx1 开始查询 2 个版本为 1 的记录
scan 'kooola', {COLUMNS => ['cf1', 'cf2'], LIMIT => 10, STARTROW => 'xxxxxx1'} rowkey 从 xxxxxx1 开始查询 10 条记录,记录只显示列族为 cf1 和 cf2 的值
例外我们也可以使用 FILTER 对值进行过滤
scan 'kooola',FILTER=>"RowFilter(=,'binary:xxxxxx1')" 查询 rowkey 为 xxxxxx1 的记录 scan 'kooola',FILTER=>"RowFilter(>,'binary:xxxxxx1')" 查询 rowkey 大于 xxxxxx1 的记录
scan 'kooola',FILTER=>"RowFilter(=,'substring:xxx1')" 查询 rowkey 中包含 xxx1 的记录
scan 'kooola',FILTER=>"ValueFilter(=,'binary:march')" 查询拥有 march 值的记录
scan 'kooola',FILTER=>"ValueFilter(=,'substring:arch')" 查询值包含 arch 的记录
scan 'kooola',FILTER=>"PrefixFilter('xxxx')" 查询 rowkey 前缀为 xxxx 的记录
get
获取行或单元的值 用法: get '表名','rowkey' get '表名','rowkey','列族' get '表名','rowkey','列族:列'
get 'kooola','xxxxxx1'
get 'kooola','xxxxxx1','cf1:name'
delete
使用 delete 命令,可以在一个表中删除特定单元格 用法: delete '表名', 'rowkey', '列族:列'
deleteall
使用“deleteall”命令,可以删除一行中所有单元格 deleteall '表名', 'rowkey'
以上所述就是小编给大家介绍的《【Hbase】掌握这些常用 hbase shell 命令,工作更轻松》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Java开发必须掌握的线上问题排查命令
- 进一步学习 nox 教程,轻松掌握命令行用法
- [译] 进一步学习 nox 教程,轻松掌握命令行用法
- 掌握面向对象编程本质,彻底掌握OOP
- 如何入门掌握Nginx?
- 掌握JMH 原 荐
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python学习手册(第4版)
[美] Mark Lutz / 李军、刘红伟 / 机械工业出版社 / 2011-4 / 119.00元
Google和YouTube由于Python的高可适应性、易于维护以及适合于快速开发而采用它。如果你想要编写高质量、高效的并且易于与其他语言和工具集成的代码,《Python学习手册:第4 版》将帮助你使用Python快速实现这一点,不管你是编程新手还是Python初学者。本书是易于掌握和自学的教程,根据作者Python专家Mark Lutz的著名培训课程编写而成。 《Python学习手册:第......一起来看看 《Python学习手册(第4版)》 这本书的介绍吧!