A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小蜀哥哥 于 2018-1-17 17:37 编辑

Solr集群环境搭建
    集群所需安装包
1. 将淘淘商城资料\参考资料\Solr\bin 下将以下安装包上传到linux系统。

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运行环境拷贝至集群环境    中即可。我们只需要修改一些配置文件就可    以了。单机版的solr参见
http://bbs.itheima.com/forum.php ... d=388312&extra=
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单机版的solrhome复制到solr_cloud目录下。更名为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




45.png (86.2 KB, 下载次数: 41)

45.png

7 个回复

倒序浏览
very good  coder!  成都校区牛逼
回复 使用道具 举报
棒棒哒 ............
回复 使用道具 举报
666666666666666666
回复 使用道具 举报
我就看一看
回复 使用道具 举报
66666666666666
回复 使用道具 举报
感谢分享.............
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马