注明:因为这部分内容涉及到工作,所以笔者会将真实的业务逻辑隐藏,呈现的例子不具有很强的业务性,如果数据场景不恰当还请见谅,就当一个解决方案看一下就好。
背景
CDH5.3.2中的Key-Value Indexer使用的是Lily Hbase NRT Indexer服务,Lily HBase Indexer是一款灵活的、可扩展的、高容错的、事务性的,并且近实时的处理HBase列索引数据的分布式服务软件。它是NGDATA公司开发的Lily系统的一部分,已开放源代码。Lily HBase Indexer使用SolrCloud来存储HBase的索引数据,当HBase执行写入、更新或删除操作时,Indexer通过HBase的replication功能来把这些操作抽象成一系列的Event事件,并用来保证写入Solr中的HBase索引数据的一致性。并且Indexer支持用户自定义的抽取,转换规则来索引HBase列数据。
配置
1. 创建hbase表
1 | ##创建名称为basicdata 的空间,类似于库的概念 |
创建完成之后可以通过,http://xxxx.xxx.xx:60010 查看表是否创建情况
2. 创建SolrCloud 集合
(1) 使用 instancedir generate 命令,生成solr的基本配置文件。1
solrctl instancedir --generate ~/weixingxin/basic_data:user_info
(2) 修改~/weixingxin/basic_data:user_info/conf/schema.xml 文件,配置需要索引的列信息及规则。
1 | <field name="user_id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> |
(3)创建collection 名为basic_data_user_info
1 | solrctl instancedir --create basic_data_user_info ~/weixingxin/basic_data:user_info |
运行命令后,solr会将文件同步到各个zookpeer节点上,实现分布式配置。
(4) 创建basic_data_user_info 的分片数为4
1 | solrctl collection --create basic_data_user_info -s 4 |
(5)其他命令1
2
3
4
5
6##查看已经创建好的所有集合
solrctl instancedir --list
##删除创建好的solr索引
solrctl collection --delete basic_data_user_info
##删除集合配置
solrctl instancedir --delete basic_data_user_info
3. lily index 配置
(1) 配置Morphlines文件,此文件映射了hbase的列与solr的关系
1 | SOLR_LOCATOR : { |
(2) 配置morphline-hbase-mapper.xml 文件,将Morphlines 与 hbase basic_data:user_info表 关联
1 | <?xml version="1.0"?> |
(3) 同步morphline-hbase-mapper.xml配置文件
1 | hbase-indexer add-indexer \ |
查看更多命令参数:hbase-indexer add-indexer –help
到此lily index 的配置完成,下一篇导入数据,测试索引。。。