您的位置:

hbase shell命令详解

一、hello world

首先,我们需要知道如何启动hbase shell。在终端上输入"hbase shell"即可进入hbase shell界面,出现以下信息:

hbase(main):001:0>
这意味着你已经成功进入了hbase shell界面,可以开始与hbase数据库进行交互。

二、表操作

在hbase中,表是一个非常重要的概念。在hbase shell中,我们可以使用以下命令对表进行创建、删除、修改等操作。

1.创建表

使用create命令可以创建一个新的表,并且需要指定表名和列族。列族是表的一部分,用于对表的数据进行组织。

hbase(main):001:0> create 'mytable', 'cf1', 'cf2'
这样就创建了一个名为mytable的表,并且包含两个列族cf1和cf2。

2.查看表

使用list命令可以列出所有表的详细信息

hbase(main):001:0> list

3.删除表

使用disable命令可以禁用表,使用drop命令可以删除表。

hbase(main):001:0> disable 'mytable'
hbase(main):002:0> drop 'mytable'

4.修改表

使用alter命令可以修改表的设置,比如增加列族、删除列族、修改表的最大版本数目等。

hbase(main):001:0> alter 'mytable', {NAME => 'cf3'}

三、数据操作

在hbase中,数据存储在表中,以行和列的形式进行组织。在hbase shell中,我们可以使用以下命令对数据进行CRUD操作。

1.插入数据

使用put命令可以将数据插入到表中。在插入数据时,需要指定表名、行键、列族、列名以及值。

hbase(main):001:0> put 'mytable', 'row1', 'cf1:col1', 'value1'

2.查找数据

使用get命令可以根据行键和列族获取数据。

hbase(main):001:0> get 'mytable', 'row1'
hbase(main):002:0> get 'mytable', 'row1', {COLUMN => 'cf1:col1'}

3.扫描数据

使用scan命令可以扫描表中的数据,并且可以指定行范围、列族等参数。

hbase(main):001:0> scan 'mytable'
hbase(main):002:0> scan 'mytable', {COLUMNS => ['cf1'], LIMIT => 10}

4.删除数据

使用delete命令可以删除表中的数据。

hbase(main):001:0> delete 'mytable', 'row1', 'cf1:col1'

四、HBase过滤器

在hbase shell中,可以使用不同类型的过滤器来过滤表格中的数据。

1.前缀过滤器

使用PrefixFilter命令可以通过前缀来过滤表格中的数据。

hbase(main):001:0> scan 'mytable', {FILTER => "PrefixFilter('row1')"}

2.列值过滤器

使用SingleColumnValueFilter命令可以通过比较列的值来过滤表格中的数据。

hbase(main):001:0> scan 'mytable', {FILTER => "SingleColumnValueFilter('cf1','col1',>, 'binary:value2')"}

3.行键过滤器

使用RowFilter命令可以通过比较行键来过滤表格中的数据。

hbase(main):001:0> scan 'mytable', {FILTER => "RowFilter(=,'substring:row1')"}

4.组合过滤器

使用FilterList命令可以组合多种过滤器来进行综合过滤。

hbase(main):001:0> scan 'mytable', {FILTER => "FilterList([PrefixFilter('row1'), SingleColumnValueFilter('cf1','col1',>, 'binary:value2')])"}

五、HBase命令行编程

在hbase shell中,我们可以使用Ruby等语言进行编程,以便更加灵活地操作hbase数据库。

hbase(main):001:0> require 'java'
hbase(main):002:0> import org.apache.hadoop.hbase.HBaseConfiguration
hbase(main):003:0> import org.apache.hadoop.hbase.client.HBaseAdmin
hbase(main):004:0> config = HBaseConfiguration.create()
hbase(main):005:0> admin = HBaseAdmin.new(config)
hbase(main):006:0> admin.listTables()

以上代码就使用了Ruby语言来获取当前hbase数据库中的所有表名。