1. 目标:
使用solrcloud的集群做搜索引擎。 使用solr自带的以外的zookeeper集群存储配置, 用solr自带的jetty服务器启动服务。
2. 环境:
172.19.57.235 server216
172.19.113.234 server143
172.19.228.14 server191
a. 部署一个3个zookeeper组建的集群;
b. 部署一个6个solr实例的solrcloud集群;(每台服务器上部署启动两个solr实例)
3.安装目录:
主目录:/home/worksoft/;
jdk1.8 solr-7.2.0 zookeeper-3.4.10
============ 安装zookeeper集群
请参照:https://lucene.apache.org/solr/guide/6_6/using-zookeeper-to-manage-configuration-files.html
1. 下载和解压,转入目录
#cd /home/worksoft/zookeeper-3.4.10
2. 配置
# cp conf/zoo_sample.cfg conf/zoo.cfg
vi conf/zoo.cfg
新增集群的配置
server.1=172.19.113.234:2888:3888
server.2=172.19.228.14:2888:3888
server.3=172.19.57.235:2888:3888
设置数据文件目录
dataDir=data
3. 设置主机的标识 (x:代表1,2,3)
echo “x” > data/myid
============ 安装solr
1. 下载和解压:
本例使用的是solr-7.2.0 自己去apache官网下载;
#tar -xzvf solr-7.2.0.tgz
2. 进入安装目录:
#cd /home/worksoft/
3. 做个软连接(方便以后版本升级, 也就是做个solr的别名)
#ln -s /home/worksoft/solr-7.2.0 /home/worksoft/solr
4. 进入solr的安装目录
#cd /home/worksoft/solr
注:解压好,则安装好了。不用官方的安装脚本, 我要部署在docker中的,所以文件尽量的集中。不依赖于os的环境。
5. 配置solr
#vi bin/solr.in.sh
--设置solr的主机名
SOLR_HOST="server216"
--设置zookeeper的注册地址。(/solr : 把所有的文件全部都放在solr的目录下面)
ZK_HOST="server143:2181,server191:2181,server216:2181/solr"
ZK_CLIENT_TIMEOUT="15000"
6. 在zk集群中创建/solr目录
bin/solr zk mkroot /solr -z server143:2181,server191:2181,server216:2181
7. 启动solrcloud
bin/solr start -c -force
8. 停止与查询
# bin/solr stop
# bin/solr status
========配置solrCloud
1、 上传配置文件
默认启动上传的zk的是_default的配置(是一个非常简单的配置)。可以在linux的环境下上传自己的配置。如:我们用安装程序sample配置。
bin/solr zk upconfig -n _techproducts -d /home/worksoft/solr/server/solr/configsets/sample_techproducts_configs/conf
2、 增加中文分词
a)在配置文件solrconfig.xml 中引入中文分词的jar包,<lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs" regex=".*\.jar" />
b)增加中文分词的类型
<!-- ChineseAnalyzer -->
<fieldType name="solr_cnAnalyzer" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
</fieldType>
c)重新上传配置到zk中
/home/worksoft/solr/bin/solr zk upconfig -n analysis_cn_configs -d /home/worksoft/solr/server/solr/configsets/analysis_cn_configs/conf
========== 常见错误
1. solr更新schema.xml后,重新把配置文件注入到zookeeper:
a) 上传更新后的文件到zk上:/home/worksoft/solr/server/scripts/cloud-scripts/zkcli.sh -z server143:2181,server191:2181,server216:2181 -cmd putfile /solr/configs/analysis_cn_configs/managed-schema /home/worksoft/solr/server/solr/configsets/analysis_cn_configs/conf/managed-schema
前一个文件为zookeeper文件路径,后面为本地文件路径
b)重新reload(其实solrcloud 会自动reload的)
http://server216:8984/solr/admin/collections?action=RELOAD&name=item
2.索引被锁
如:'item_shard2_replica_n4' is already locked.到data/index下面看应该是有一个write.lock文件,删掉就行了。