本文接着上期介绍的”简单了解Hbase及快速入手之入门教程_01“,着重介绍了hbase的过滤器,适合刚入门或者刚接触的小伙伴参考。文章后续会补充本篇文章的word文档的下载路径,提供下载参考使用。
一、Hbase伪分布式部署:
在这篇博客“简单了解Hbase及快速入手之入门教程_01”中已经介绍了单机安装hbase,伪分布式安装就是在单机的基础上修改部分配置即可达到伪分布式安装。
1、修改配置。
(1)、(建议)修改vi ./hbase-env.sh中的jdk的版本为1.8。
(2)、修改hbase-site.xml,加入如下配置,开启hbase的分布式集群功能。
vi ./hbase-site.xml
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
(3)、查看/etc/hostname,修改/etc/hosts,加入如下配置。
vi /etc/hostname
vi /etc/hosts
二、Hbase高级查询:
1、根据入库时间戳范围TIMERANGE查询数据。
2、根据STARTKWY和ENDKEY查询数据,查询两个row之间的数据。
scan 't_local_test',{STARTROW=>'row2',ENDROW=>'row4'}
3、Valueilter过滤器:基于值来过滤数据。
(1)、谁的值=’this is a text1’
scan 't_local_test', FILTER=>"ValueFilter(=,'binary:this is a text1')"
(2)、谁的值包含‘text’
scan 't_local_test', FILTER=>"ValueFilter(=,'substring:text')"
4、ColumnPrefixFilterf过滤器:基于列名过滤数据。
(1)、查询列名为a的所有数据
scan 't_local_test', FILTER=>"ColumnPrefixFilter('a')"
(3)、查询列名为a且值为“this is a text1”的所有数据。
scan 't_local_test', FILTER=>"ColumnPrefixFilter('a') AND ValueFilter(=,'binary:this is a text1')"
5、基于rowkey的过滤器。
(1)、PrefixFilter过滤器,查询rowkey中以‘row’开头的数据。
scan 't_local_test', FILTER=>"PrefixFilter('row')"
(2)FilstKeyOnlyFilter过滤器,查询同一个rowkey中同一个column中的一个版本(version,hbase中的数据是多版本的)的数据。
scan 't_local_test', FILTER=>"FirstKeyOnlyFilter()"
(3)KeyOnlyFilter过滤器,查出来的数据中,只保留key,不保留value。
scan 't_local_test', FILTER=>"KeyOnlyFilter()"
6、上述的过滤器可以根据情况组合查询。
(1)、从row4开始查,查询以row开头的,列名为c的,只保留key,不保留value的,且值中包含text的数据。
scan 't_local_test',{STARTROW=>'row4',FILTER=>"ColumnPrefixFilter('c') AND ValueFilter(=,'substring:text') AND KeyOnlyFilter()"}