一、准备工作
1.系统及软件版本
系统版本:centos7.5、zookeeper版本:zookeeper-3.4.12、solr版本:solr-7.3.1
2.安装3台虚拟机
虚拟机ip 192.168.0.242,192.168.0.243
3.给每台机器安装jdk
二、zookeeper集群安装
1.解压zookeeper
tar -zxvf zookeeper-3.4.8.tar.gz
2.创建 data和log目录用于存放数据
mkdir /tmp/zdatadir
mkdir /tmp/zlogdir
3.拷贝zookeeper配制文件zoo_sample.cfg
cp conf/zoo_sample.cfg conf/zoo.cfg
4.修改配置文件 zoo.cfg
vi conf/zoo.cfg
加入如下如内容:
dataDir=/tmp/zdatadir
dataLogDir=/tmp/zlogdir
# zookeeper集群
server.1=192.168.0.242:2888:3888
server.2=192.168.0.243:2888:3888
5.在/tmp/zdatadir/下创建myid文件 并写入对应的数字
注意:myid文件内容中的数字要对应,在192.168.0.242服务器上的myid 数字为1,在192.168.0.243服务器上的myid 数字为2。这些数字可以任意 但要和zoo.cfg中的servder.数字中的数字一致。
6.开启zookeeper端口
[root@solr bin]# firewall-cmd --add-port=2181/tcp --zone=public --permanent
success
[root@solr bin]# firewall-cmd --add-port=2888/tcp --zone=public --permanent
success
[root@solr bin]# firewall-cmd --add-port=3888/tcp --zone=public --permanent
success
7.重启防火墙以使改动生效
[root@solr bin]# firewall-cmd --reload
success
8.启动zookeeper集群
进入 zookeeper中的bin目录
./zkServer.sh start
查看集群状态
./zkServer.sh status 刚启动可能会有错误,集群中其他节点一并起来后就正常了
./zkServer.sh stop 停止
./zkServer.sh restart 重启
./zkCli.sh 连接zookeeper集群
9.安装成功的结果如下 1个 leader 1个follower(如果是三台机器,则为1个leader,2个follower)
[root@solr bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@solr bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: leader
[root@solr bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@solr bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: follower
三、solr集群的搭建
1.在 /usr/local/ 下新建文件夹solrcloud,然后解压 solr-7.3.1.tgz 到 /usr/local/solrcloud目录下
[root@solr ~]# ls
anaconda-ks.cfg solr-7.3.1.tgz zookeeper-3.4.12.tar.gz
[root@solr ~]# mkdir /usr/local/solrcloud
[root@solr ~]# tar -xvf solr-7.3.1.tgz -C /usr/local/solrcloud
2.进入solr解压文件夹,修改solr bin目录下的solr.in.sh文件
[root@solr ~]# cd /usr/local/solrcloud/solr-7.3.1/bin
[root@solr bin]# ls
init.d install_solr_service.sh oom_solr.sh post solr solr.cmd solr.in.cmd solr.in.sh
修改bin下solr.in.sh文件
ZK_HOST="192.168.0.242:2181,192.168.0.243:2181"
去掉 ZK_CLIENT_TIMEOUT 的注释
即
# Set the ZooKeeper connection string if using an external ZooKeeper ensemble
# e.g. host1:2181,host2:2181/chroot
# Leave empty if not using SolrCloud
#ZK_HOST=""# Set the ZooKeeper client timeout (for SolrCloud mode)
#ZK_CLIENT_TIMEOUT="15000"
改为:
# Set the ZooKeeper connection string if using an external ZooKeeper ensemble
# e.g. host1:2181,host2:2181/chroot
# Leave empty if not using SolrCloud
ZK_HOST="192.168.0.242:2181,192.168.0.243:2181"# Set the ZooKeeper client timeout (for SolrCloud mode)
ZK_CLIENT_TIMEOUT="15000"
3.启动组成solrcloud的各个solr(不能再用 ./solr start -force 命令了,另外在启动solrcloud之前一定要先启动zookeeper,否则报500)
进入/usr/local/solrcloud/solr-7.3.1/bin 后:
[root@solr bin]# ./solr start -cloud -force
或
[root@solr bin]# ./solr restart -cloud -force
4.solr默认不支持中文分词
4.1 添加中文分词插件:
solr7.3中自带中文分词插件,将solr-7.3.1\contrib\analysis-extras\lucene-libs\lucene-analyzers-smartcn-7.3.1.jar 复制到 solr-7.3.1\server\solr-webapp\webapp\WEB-INF\lib 目录中
[root@solr solrcloud]# cp solr-7.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-7.3.1.jar solr-7.3.1/server/solr-webapp/webapp/WEB-INF/lib/