一、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数据库中的所有表名。