HBaseSolrTool
HBaseSolrTool目的是解决目前HBase二级索引方案不够完善,无法满足HBase对于综合查询的需求。因此借用Solr的查询功能,满足运行在HBase上的应用对于多条件综合查询的需求。
###1、使用说明
1)因为在HBaseSolrTransformer类中已经硬编码,java bean中必须有id属性,该属性将作为HBase的rowkey;
2)docs中HBaseSolrTool-1.0-SNAPSHOT.jar(可自行通过项目编译)需要放到solr的lib中;
3)替换hbase-site.xml文件为所使用集群的hbase-site.xml文件;
###2、Demo示例
在目录“src/test/java/org/sr/hbase/test”中.
###3、架构说明

###4、注解说明
####A、HTable
public @interface HTable {
String table() default ""; // Hbase表设置,默认存储为类名
}
####B、HColumn
public @interface HColumn {
boolean id() default false; // 是否作为HBase rowkey
boolean index() default false; // 是否是Solr索引
String family() default ""; // column family设置,默认存储为属性名
String qualifier() default ""; // qualifier设置,默认存储为属性名
}
###5、API说明


###6、示例中类Case说明
@HTable(table = "Case")
public class Case {
@HColumn(id = true, index = true)
private String id;
@HColumn(family = "cf", index = true)
private String code;
@HColumn(family = "cf")
private String type1;
@HColumn(family = "cf")
private String type2;
@HColumn(family = "cf", index = true)
private String type3;
@HColumn(family = "cf", qualifier = "date_q", index = true)
private String date;
……
}
1)@HTable(table = "Case")
表注解,该含义是将类Case与HBase表Case关联;
2)@HColumn(id = true, index = true)
列注解,含义是该属性将作为HBase rowkey,并且作为Solr的索引列;
3)@HColumn(family = "cf", qualifier = "date_q", index = true)
列注解,含义是该属性对应HBase的column family为“cf”,qualifier为“date_q”,并且作为Solr的索引列;
###7、solr配置示例
1)schema.xml
……
id
id
……
2)solrconfig.xml
……
di.xml
……
3)di.xml
……
transformer="DateFormatTransformer,RegexTransformer,TemplateTransformer,org.sr.hbase.solr.HBaseSolrTransformer,LogTransformer"
zookeeper="192.168.0.100,192.168.0.230,192.168.0.234" parent="/hbase" tableName="Case" family="cf" operateModel="add">
……
本文介绍了一种结合HBase与Solr的技术方案,旨在弥补HBase在二级索引及综合查询方面的不足,通过利用Solr的强大查询能力,实现对HBase数据的高效检索。文章详细介绍了集成方案的实现原理、核心组件配置与使用方法。
682

被折叠的 条评论
为什么被折叠?



