Win7下单机版的伪分布式solrCloud环境搭建Tomcat8+ solr-6.3.0+zookeeper3.4.6

  • 介绍

Win7下单机版的伪分布式solrCloud环境搭建Tomcat8+ solr-6.3.0+zookeeper3.4.6

Win7下单机版的伪分布式solrCloud环境搭建Tomcat8+ solr-6.3.0+zookeeper3.4.6

一、tomcat8+solr6.3.0

1、软件环境配置

环境: Windows 7

tomcat-8.0

Zookeepr v3.4.6

solr-6.3.0

2、部署过程

2.1 部署好单机版Tomcat8.0 + jdk1.8 + Solr6.3.0

第一步:在F:\solr目录下建立solrCloud目录。

第二步:复制apache-tomcat-8.0到solrCloud目录下,并重命名为tomcat8_ser1

第三步:在F:\solr\solrCloud目录下新建 solr_home_1 文件夹如下图,并在目录下,创建 home  和 server 文件夹

第四步:(solr6.3发布版本本身就有一个可以运行的web版本)将solr-6.3.0\server\solr-webapp下的webapp文件复制到F:\solr\solrCloud\ solr_home_1\service目录下,并重命名为solr_web。复制成功后如图:

第五步:复制solr-6.3.0\server\solr下面的配置文件全部拷贝到F:\solr\solrCloud\ solr_home_1\home目录下。

第六步:将solr-6.3.0\server\lib\ext下面的jar包拷贝到solr_web/WEB-INF/lib下面。

第七步:复制solr-6.3.0/server/resources下的log4j.properties到solr_web/WEB-INF/classes下面,如果没有classes目录,就新建classes目录。

第七步:修改web.xml文件,关联到solr配置文件,这样在tomcat容器启动后,再启动solr服务器框架时,就会去读取这些配置文件,初始化solr框架。在web.xml中找到节点<env-entry>,默认是注释的,去掉注释。节点配置如下:节点名称solr/home,对应的值为:F:\solr\solrCloud\solr_home_1\home,可自定义。修改后的web.xml如下:

Web.xml

第八步:修改tomcat的配置文件server.xml,关联web工程。

server.xml

第九步:输入http://127.0.0.1:8080/solr/index.html来访问看看。我的天,居然报错了,贴出来看看:

报403错误,403一般都是没有权限。真是奇怪,为什么会报这个错误呢,我也是折腾了好一会。最后发现在web.xml中有这么一段配置:

有个节点<auth-constraint />,这个配置表示拒绝所有对这个资源的访问。原来如此,把这段代码注释掉:

重新运行看看。终于可以了。

二、配置多Tomcat8.0+solr6.3.0同时运行

第一步:

把tomcat8_ser1复制2份,分别命名tomcat8_ser2,tomcat8_ser3;

solr_home_1复制2份,分别命名solr_home_2,solr_home_3。

目录结构如下:

第二步:修改 F:\solr\solrClould\ \tomcat8_ser*\conf\server.xml配置。修改 tomcat8_ser* 分别对应 各自solr_home_*\server\solr_web服务 。如下图:tomcat8_ser1对应solr_home_1\server\solr_web、2对应2 、3对应3 是吧

为了三个tomcat能够在一台机器上同时启动,需要在server.xml修改tomcat的端口信息。修改方案如下:

Tomcat Admin Port HTTP/1.1 Port AJP/1.3 Port
tomcat7_ser1 8005 8080 8009
tomcat7_ser2 8015 8081 8019
tomcat7_ser3 8025 8082 8029

下图是tomcat8_ser1每个端口位置:

Tomcat Admin Port:

HTTP/1.1 Port

AJP/1.3 Port

第三步:配置各个tomcat和solr 之间的关系,修改D:\Java\solrCloud5\solr_home_*\server\solr\WEB-INF目录下的web.xml文件(对应关系)

第四步:验证修改是否成功,依次启动三个Tomcat。并在浏览器输入如下的URL:

solr/">http://localhost:8080/solr/index.html

solr/">http://localhost:8081/solr/index.html

solr/">http://localhost:8082/solr/index.html

如果都能正常访问到solr的admin页面,那么说明配置是成功的。否则就需要检查哪里错了或者遗漏了。

三、配置ZooKeeper集群

这部分的内容与前面tomcat+solr是没有关联的,所以配置这里,可以跟忘记前面的内容。

第一步:解压zookeeper-3.4.6.tar.gz到F:\solr\solrCloud目录,重命名为zookeeper-1。

第二步:把F:\solr\solrCloud\ zookeeper-1\conf\目录下的zoo_sample.cfg修改为zoo.cfg。并写入如下的配置参数:

 

tickTime=2000

initLimit=10

syncLimit=5

dataDir=F:/solr/solrCloud/zookeeper-1/data

dataLogDir= F:/solr/solrCloud/zookeeper-1/datalog

clientPort=2181

server.1=127.0.0.1:2881:3881

server.2=127.0.0.1:2882:3882

server.3=127.0.0.1:2883:3883

 

并且按照配置创建相应的data和datalog目录。如果不不创建目录是无法正常启动的。

在data目录中创建文件myid(不需要后缀名),在myid文件中写入数字1并保存退出。

 

第三步:把zookeeper-1复制2份,分别命名为zookeeper-2、zookeeper-3。然后修改各个zookeeper-*的conf目录下zoo.cfg的dataDir和dataLogDir和clientPort。修改方案如下:

dataDir dataLogDir clientPort
zookeeper-1 D:/Java/solrCloud5/ zookeeper-1/data D:/Java/solrCloud5/

zookeeper-1/datalog

2181
zookeeper-2 D:/Java/solrCloud5/ zookeeper-2/data D:/Java/solrCloud5/

zookeeper-2/datalog

2182
zookeeper-3 D:/Java/solrCloud5/ zookeeper-3/data D:/Java/solrCloud5/

zookeeper-3/datalog

2183

并且修改每个data目录下的myid文件中的内容。zookeeper-1是1, zookeeper-2是2,zookeeper-3是3 。

第四步:启动三个zookeeper。并验证是否配置成功。目录结构以及启动目录如下图:

注意:连接第一台时有异常信息,不用管,等都连接起来就没有异常了。

进入cmd 命令,输入: netstat -ano|findstr 2181 查看端口是否启用

四、配置Tomcat+solr+zookeeper集群

前面tomcat+solr能够启动和访问了,而且zookeeper也能启动成功了。接下来就需要把他们关联起来。大家看那么多贴子应该知道(当然不知道也要记住这个知识点):solrcloud 的所有配置 需要zookeeper统一管理

第一步: 将需要的配置库 集中放到一个目录中。

在F:\solr\solrCloud 下创建cloud_conf文件夹作为配置库,将solr-6.3.0\server\ solr\configsets\sample_techproducts_configs\conf 下配置文件复制到cloud_conf文件夹中。(也可以使用solr-6.3.0\example\example-DIH\solr\solr\conf中的配置文件)。

第二步: 配置zookeeper路径

在F:\solr\solrCloud\tomcat8_ser1\bin\catalina.bat文件中, 我是在 setlocal 上一行添加:

如下图:

set JAVA_OPTS=-Dbootstrap_confdir=F:/solr/solrCloud/cloud-config -Dcollection.configName=myconf -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 -DnumShards=3

配置参数解释:

-DzkHost是用来指定zookeeper服务器的ip和端口。

-Dnumshareds=3 用来指定当前集群中分片数为3

-Dcollection.configName   是在指定你的配置文件上传到zookeeper后的名字,省略这个参数将导致配置名字为默认的“configuration1”

-Dbootstrap_confdir :zooKeeper需要准备一份集群配置的副本,所以这个参数是告诉SolrCloud这些 配置是放在哪里。同时作为整个集群共用的配置文件。可以看作是第一份solr配置。因为后续我们可以通过上传,来实现多collection

其余tomcat8_ser* catalina.bat设置

set JAVA_OPTS= -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

第三步:  因为配置由zookeeper 统一管理了,所以home下面的solr配置就不起使用了。 删除solr_home_*\home\solr文件夹, 修改配置solr.xml,如下图

hostPort 修改为对应的tomcat端口号 8080 8081 8082。

第四步:重启tomcat。访问任意一个端口都成,比如: http://localhost:8081/sor/index.html, 能正常访问,且菜单中,出现了Cloud说明我们已经部署成功了,恭喜你小伙子 有前途

 

本文为原创,如果您当前访问的域名不是surenpi.com,请访问“素人派”。

发表评论

电子邮件地址不会被公开。 必填项已用*标注