solr集群环境搭建
Posted Lucia557
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了solr集群环境搭建相关的知识,希望对你有一定的参考价值。
Solr集群环境搭建
集群所需安装包
1. 在本地电脑的将以下安装包上传到共享目录中。
solr-4.10.3.tgz.tgz和apache-tomcat-7.0.47.tar.gz 、jdk、zookeeper
1). 将共享目录下的zookeeper-3.4.6.tar.gz上传到 /usr/local/taotao_shop/solr_cloud
2). solr-4.10.3.tgz.tgz和apache-tomcat-7.0.47.tar.gz就不用了,直接使用上次我们搭建sorl单机版的tomcat就可以(上篇随笔)。
拷贝如下:
2. 首先搭建zookeeper集群
1). 将zookeeper压缩包解压,并将解压后的文件夹更名为zookeeper01,然后将zookeeper01该复制为两份,分为zookeeper02、zookeeper03
2). 在每个zookeeper目录下创建一个data目录
3). 并每个zookeeper在data目录下创建一个myid文件,文件名就叫做“myid”。内容就是每个实例的id。例如1、2、3
4). 修改每个zookeeper配置文件。把conf目录下的zoo_sample.cfg文件改名为zoo.cfg。
5). 并修改zoo.cfg文件内容。修改内容如下
(1). 修改每个zoo.cfg下面的dataDir,该值指向每个zookeeper的data目录
(2). 修改每个zoo.cfg下面的clientPort。注意端口不能重复,端口修改为 zookeeper01对应2182、zookeeper02对应2183、zookeeper03对应2184
(3). 在每个zookeeper的conf目录下的zoo.cfg末尾添加如下内容
server.1=192.168.25.128:2881:3881 server.2=192.168.25.128:2882:3882 server.3=192.168.25.128:2883:3883 |
解释:server.1、server.2、server.3分别代表zookeeper的集群列表,1、2、3分别表示zookeeperj节点的id。而ip(192.168.25.128)后面的端口表示zookeeper集群节点之间的通信端口,千万不要和上面我们修改的clientPort端口重复。然后最后的一个端口是zookeeper的选举端口,也不能重复。
操作如下:
修改zookeeper01/conf/zoo.conf
修改zookeeper02/conf/zoo.conf
修改zookeeper03/conf/zoo.conf
6). 启动每个zookeeper。可以执行每个zookeeper的bin目录下的zkServer.sh start。不过单独启动貌似有问题。这里我们编写一个批 处理文件来一次开启所有的zookeeper。
在/usr/local/taotao_shop/solr_cloud下创建zookeeper_all.sh,并将以下内容写入文件
cd /usr/local/taotao_shop/solr_cloud/zookeeper01/bin ./zkServer.sh start cd /usr/local/taotao_shop/solr_cloud/zookeeper02/bin ./zkServer.sh start cd /usr/local/taotao_shop/solr_cloud/zookeeper03/bin ./zkServer.sh start |
修改zookeeper_all.sh的执行权限
可以在每个zookeeper的bin目录下使用./zkServer.sh status查看状态
开启zookeeper集群如下:
这里我们也可以创建一个zookeeper_stop.sh的批处理文件来关闭所有zookeeper。
cd /usr/local/taotao_shop/solr_cloud/zookeeper01/bin ./zkServer.sh stop cd /usr/local/taotao_shop/solr_cloud/zookeeper02/bin ./zkServer.sh stop cd /usr/local/taotao_shop/solr_cloud/zookeeper03/bin ./zkServer.sh stop |
3. 搭建Solr集群
Solr的运行需要tomcat环境,所以我们直接将单机版的solr运行环境拷贝至集群环境 中即可,而且单机版的tomcat已经拷贝了solr.war。我们只需要修改一些配置文件就可 以了。单机版的solr参见《06.Solr单机安装并设置开机启动.docx》
1). 创建四个tomcat实例。
(1) 将/usr/local/taotao_shop/solr下面的tomcat_solr拷贝到/usr/local/taotao_shop/solr_cloud下面。
(2) 将/usr/local/taotao_shop/solr_cloud下面的tomcat_solr更名为tomcat8180。并将tomcat8180拷贝三份分别为tomcat8280、tomcat8380、tomcat8480
(3) 修改四个tomcat的端口。每个端口号和tomcat的文件名中数字对应。修改如下
修改tomcat8180的conf目录下的server.xml
tomcat8280的conf目录下的server.xml
修改的端口就是:8205 8280 8209
tomcat8380的conf目录下的server.xml
修改的端口就是:8305 8380 8309
tomcat8480的conf目录下的server.xml
修改的端口就是:8405 8480 8409
2). 为每个tomcat下的solr关联solrhome。将solr安装目录下/example/solr的所有文件 拷贝到的集群目录。更名为solrhome8180
3). 将solrhome8180拷贝三份。分别为solrhome8280、solrhome8380、solrhome8480
4). 修改每个tomcat的webapps/solr/WEB-INF下面的web.xml配置。关联solr和 solrhome。
(1) 修改tomcat8180下关联solrhome8180
(2) 修改tomcat8280下关联solrhome8280
(3) 修改tomcat8380和tomcat8480关联solrhome同理。
5). 配置solrCloud相关的配置。修改每一个solrhome下面solr.xml配置文件,将ip地 址和对应的tomcat端口进行配置
(1) 修改solrhome8180的solr.xml配置
(2) 修改solrhome8280的solr.xml配置
(3) 对于修改solrhome8380和solrhome8480参照上面。
4. zookeeper统一管理solr
现在zookeeper集群和solr集群已经搭建完成,那么如何搭建solrcloud环境呢,那么 就需要让zookeeper来管理solr的配置文件。
1). 使用solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh这个上传工具将集群下任一 solrhome的collection1/conf上传到zookeeper集群
使用以上工具进行上传,输入如下命令即可(如果报错,可以尝试多执行几次)。
注意:./zkcli.sh命令之前要开启zookeeper集群。也就是先执行之前编写的批处理 zookeeper_all.sh
./zkcli.sh -zkhost 192.168.25.128:2182,192.168.25.128:2183,192.168.25.128:2184 -cmd upconfig -confdir /usr/local/taotao_shop/solr_cloud/solrhome8180/collection1/conf -confname myconf |
2). 查看zookeeper配置文件,确定zookeeper是否管理solr了。
进入zookeeper0*任意目录,这里我们进入zookeeper01的bin目录。使用bin目录下面 的zkCli.sh来查看zookeeper集群所管理的配置。
在bin目录下执行:./zkCli.sh -server 192.168.25.128:2182
5. tomcat运行时关联solr和zookeeper
修改每个tomcat(修改tomcat8180、tomcat8280、tomcat8380、tomcat8480)的bin目录 下的catalina.sh 文件,加入以下内容:
JAVA_OPTS="-DzkHost=192.168.25.128:2182,192.168.25.128:2183,192.168.25.128:2184" |
注意JAVA_OPTS的位置,不要放最后哟
6. 启动所有的tomcat
(1) 启动tomcat8180、tomcat8280、tomcat8380、tomcat8480。这里我们编写批处理 文件来启动。创建tomcat_all.sh,内容如下:
cd /usr/local/taotao_shop/solr_cloud/tomcat8180/bin ./startup.sh cd /usr/local/taotao_shop/solr_cloud/tomcat8280/bin ./startup.sh cd /usr/local/taotao_shop/solr_cloud/tomcat8380/bin ./startup.sh cd /usr/local/taotao_shop/solr_cloud/tomcat8480/bin ./startup.sh |
(2) 修改文件的执行权限
(3) 编写关闭所有tomcat的批处理文件。创建tomcat_shop.sh。内容如下:
cd /usr/local/taotao_shop/solr_cloud/tomcat8180/bin ./shutdown.sh cd /usr/local/taotao_shop/solr_cloud/tomcat8280/bin ./shutdown.sh cd /usr/local/taotao_shop/solr_cloud/tomcat8380/bin ./shutdown.sh cd /usr/local/taotao_shop/solr_cloud/tomcat8480/bin ./shutdown.sh |
(4) 修改关闭批处理文件的执行权限
7. 测试。
(1) 执行批处理文件启动所有tomcat
(2) 在本地浏览器访问http://192.168.25.128:8180/solr
(3) 创建新的Collection进行分片处理
http://192.168.25.128:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
(4) 删除不用的collection
http://192.168.25.128:8180/solr/admin/collections?action=DELETE&name=collection1
以上是关于solr集群环境搭建的主要内容,如果未能解决你的问题,请参考以下文章