提前准备:Linux环境,JDK,zookeeper
该环境用来配置solr集群的负载均衡,创建伪分布式的zookeeper管理
创建 solrcloud 文件夹,并将zookeeper-3.4.9.tar.gz解压到该目录下
mkdir /usr/local/solrcloud
cp zookeeper-3.4.9.tar.gz /usr/local/solrcloud
tar -zxvf zookeeper-3.4.9.tar.gz
在解压后的zookeeper-3.4.9目录下,创建 data 目录 , 并在目录下创建 myid 文件,内容为1(用来标记zookeeper)
cd zookeeper-3.4.9
mkdir data
cd data
echo 1 >> myid ( 用vi 创建文件再写入也可以 )
复制解压后的文件夹三份,并命名为zookeeper1,zookeeper2,zookeeper3
cd /usr/local/solrcloud
mv zookeeper-3.4.9 zookeeper1
cp -r zookeeper1 zookeeper2
cp -r zookeeper1 zookeeper3
并把zookeeper2,zookeeper3文件夹下的data目录中myid内容更改为2、3
vi zookeeper2/data/myid
vi zookeeper3/data/myid
进入zookeeper1/conf目录,复制zoo_sample.cfg改名为zoo.cfg
cd zookeeper1/conf
cp zoo_sample.cfg zoo.cfg
更改zoo.cfg配置文件并保存,如下图
server.1 中的“1”是myid 文件内部写的标识 1
2181:为客户端访问端口 ,2881:为选举端口 ,3881:为投票端口 保证不冲突
复制zoo.cfg 文件到zookeeper2,zookeeper3对应的conf目录下,并把端口号改为2182,2183
和文件夹data的路径
cp zoo.cfg /usr/local/solrcloud/zookeeper2/conf
vi zoo.cfg
cp zoo.cfg /usr/local/solrcloud/zookeeper3/conf
vi zoo.cfg
启动zookeeper,进入zookeeper1/bin目录下
./zkServer.sh start
启动: ./zkServer.sh start
停止: ./zkServer.sh stop
查看: ./zkServer.sh status
在solrcloud目录下 创建zk启动、停止、查看文件
************启动文件************
#vi startAllZK.sh
内容如下:
cd zookeeper1/bin/
./zkServer start
cd ../../zookeeper2/bin/
./zkServer start
cd ../../zookeeper3/bin/
./zkServer start
:wq!
************停止文件************
#vi stopAllZK.sh
内容如下:
cd zookeeper1/bin/
./zkServer stop
cd ../../zookeeper2/bin/
./zkServer stop
cd ../../zookeeper3/bin/
./zkServer stop
:wq!
************启动文件************
#vi statusAllZK.sh
内容如下:
cd zookeeper1/bin/
./zkServer status
cd ../../zookeeper2/bin/
./zkServer status
cd ../../zookeeper3/bin/
./zkServer status
:wq!
添加权限操作
#chmod +x startAllZK.sh
#chmod +x stopAllZK.sh
#chmod +x statusAllZK.sh
启动并查看状态
./startAllZK.sh
./statusAllZK.sh
leader:主节点 follower:备份节点
以上就是 zookeeper伪分布式搭建
接下来进行solrcloud伪集群搭建
首先创建4个solr实例
将之前搭建的单机版solrhome和tomcat复制过来
文章出处: linux-Centos-7-64位:8、sorl(搜索服务器)安装及配置
cp -r /usr/local/solr/tomcat/ /usr/local/solrcloud/tomcat1
复制4个,并将tomcat1~4中对应的端口改成 80018004、80818084、8011~8014
#vi tomcat1/conf/server.xml
配置整体tomcat启动/关闭文件,并配置操作权限
复制4个solrhome
#cp -r /usr/local/solr/solrhome/ /usr/local/solrcloud/solrhome1
复制4个,并更改tomcat下solr的web.xml ( 1~4 )
#vi tomcat1/webapps/solr/WEB-INF/web.xml
<env-entry-value>/usr/local/solrcloud/solrhome1</env-entry-value>
然后启动tomcat
#./startallTomcat.sh
接着将solrhome中的配置文件上传到zookeeper,使用zookeeper上传
#./zkcli.sh -zkhost 192.168.0.107:2181,192.168.0.107:2182,192.168.0.107:2183 -cmd upconfig -confdir /usr/local/solrcloud/solrhome1/collection1/conf -confname myconf
查看是否上传到zookeeper,到zookeeper的bin目录下,执行客户端查看myconf目录中是否包含solr配置文件
#cd /usr/local/solrcloud/zookeeper1/bin
#./zkCli.sh
ls /configs/myconf
修改solrhome下solr.xml中的solrcloud。改为实例对应的ip地址和端口号(1~4)
重要:修改每一台solr的tomcat中bin目录下的catalina.sh文件,加入DzkHost指定zookeeper服务器地址:(1~4)
(可以使用vi 的查找命令 /JAVA_OPTS 再次“/”可以依下查找)
JAVA_OPTS="-DzkHost=192.168.0.107:2181,192.168.0.107:8182,192.168.0.107:2183"
重新启动tomcat
./stopallTomcat.sh
./startallTomcat.sh
访问任意solr节点地址,可展现以下图文,说明成功
目前是一主多备,当前集群只有一片
接下来创建2片collection,每片是一主一备
使用以下命令创建(在浏览器中执行)
http://192.168.0.107:8081/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
action:创建命令
name:名称
numShards:单位(?片)
replicationFactor:备份单位(?片)
创建完成
删除collection1,并刷新查看
http://192.168.0.107:8081/solr/admin/collections?action=DELETE&name=collection1
到此集群搭建完毕!