CDH5.8.2 Hbase建立solr二级索引步骤说明

CDH5.8.2集成版本Hbase建立solr二级索引

1、确认所建Hbase表开启复制功能,默认不开启,CDH版本很多已开启

# create 'table',{NAME => 'info', REPLICATION_SCOPE => 1} 

#其中1表示开启replication功能,0表示不开启,默认为0 

对于已建立的表:

# disable 'table' 

# alter 'table',{NAME => 'info', REPLICATION_SCOPE => 1} 

# enable 'table' 

#describe 'table’   # 可以查看REPLICATION_SCOPE的值


2、创建solr实体配置文件本地目录

# solrctl instancedir --generate /home/dbcfg/caiyixuan   # 路径自定义

创建后会在caiyixuan目录下生成一个conf文件夹,里面是相关配置文件。

3、编辑conf文件夹里的schema.xml文件

hbase表中需要索引的列对应scheme.xml 的filed节点,其中的name属性值要与Morphline.conf文件中的outputField属性值对应

注意:此处的name自定义,但不能有重复



4、创建collection实例并配置文件上传到zookeeper

# solrctl instancedir --create caiyixuan /home/dbcfg/caiyixuan

注意:之前如果有创建过,需要先删除再创建,或者覆盖更新

(# solrctl instancedir --update caiyixuan /home/dbcfg/caiyixuan

5、上传到zookeeper之后,其他节点就可以从zookeeper下载配置文件。接着创建collection

# solrctl collection --create caiyixuan -s 15 -r 2 -m 50

(红色参数表示s表示设置Shard数为15,-r表示设置的replica数为2,-m表示最大shards数目,collection名称是caiyixuan,后面在Morphline.conf配置id时用到!)



6、在目录caiyixuan路径下建立xml文件,文档以Mapper.xml为例


table对应hbase表名,field name对应solr里的索引字段,即schema.xml里的name字段。value是由hbase表的列簇:列 组成


7、在hbase-solr目录下的bin目录下执行hbase-indexer

# cd /opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/bin      # 以实际版本路径为准

# ./hbase-indexer add-indexer -n caiyixuanindexer -c /home/dbcfg/caiyixuan/Mapper.xml -cp solr.zk=master:2181,slaver1:2181,slaver2:2181,slaver3:2181,slaver4:2181/solr -cp solr.collection=caiyixuan -z master:2181,slaver1:2181,slaver2:2181,slaver3:2181,slaver4:2181

此处caiyixuanindexer是索引分度管理器,自定义不能重复;Mapper.xml就是在conf里建立的映射文件的名称;caiyixuan是创建的collection的名称。

(update-indexer,可用于更新相关配置信息,如新增字段索引!


8、添加拼音分词和smartcn分词

添加 pinyin4j-2.5.0.jar  lucene-analyzers-smartcn-4.10.3.jar lucene-analyzers-smartcn-4.10.3-cdh5.8.2.jar IKAnalyzer2012FF_u1.jar 到/opt/cloudera/parcels/CDH/lib/solr/webapps/solr/WEB-INF/lib 下。分发到其它从节点

修改schema.xml



最后重启Solr服务


另外,附上Morphline.conf的配置文件:




如果没有添加分词依赖的jar包,重启时会报错:

Caused by: org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory

Unableto create core [caiyixuan_shard9_replica2] Caused by:org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory</str></lst> <lst name="success"> <lst> <lstname="responseHeader"> <int name="status">0</int> <int name="QTime"> 7826</int> </lst><str name="core"> caiyixuan_shard7_replica1</str></lst> <lst> <lst name="responseHeader"> <intname="status"> 0</int> <int name="QTime">8064</int> </lst> <str name="core


========================================================================

http://master:8983/solr/admin/collections?action=DELETE&name=caiyixuan              

删除collection

http://master:8983/solr/admin/configs?action=DELETE&name=caiyixuan                  

删除配置文件


更新:hbase-indexer update-indexer -n caiyixuanindexer

查看:hbase-indexer list-indexers

删除:hbase-indexer delete-indexer -n caiyixuanindexer




















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章