在Linux系统中通过Zookeeper集群部署Solr集群

接上篇博客地址:https://blog.csdn.net/SpringCYB/article/details/89951158

1.创建solr文件夹  通过unzip的方式解压tomcat和solr7.6  

2.在tomcat/webapps目录下创建solr目录,并将solr-7.2.1/server/solr-webapp/webapp/*目录下的所有内容拷贝过去。

3.将需要的jar包导入到tomcat下的solr中的WEB-INF/lib/ 目录下。

Solr-7.6.0/server/lib/ext/*  Solr-7.6.0/server/lib/ metrics开头的文件  5个

gmetric4j-1.0.7  

Solr-7.6.0/dist/solr-data......  2个

4.创建solrhome,将solr-7.6.0/server/solr/*目录下的所有内容拷贝过去。

5.apache-tomcat-8.0.0-RC1/webapps/solr/WEB-INF/web.xml文件,指定solrhome的位置,并注释security-constraint权限内容。

没有指定solrhome   将会报404错误

-注释以下代码  不注释会报403错误

 

<security-constraint>
    <web-resource-collection>
      <web-resource-name>Disable TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method>TRACE</http-method>
    </web-resource-collection>
    <auth-constraint/>
   </security-constraint>
   <security-constraint>
   <web-resource-collection>
      <web-resource-name>Enable everything but TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method-omission>TRACE</http-method-omission>
    </web-resource-collection>
   </security-constraint> 

6.先启动tomcat   访问http://ip:port/solr/index.html   不加index  404  

先开单机版,看看能不能访问到

在tomcat的bin目录下,通过chmod +x *.sh  赋权限,通过./startup.sh 命令启动tomcat,如下图

网页上访问下http://(你的ip地址):(端口号)/solr/index.html

如出现下图所示则表示成功 success

 

             -------------------------------------集群部署开始-------------------------------------

一:拷贝tomcat和solrhome

在/usr/local 路径下新建文件夹 solr-cloud。将之前solr文件夹中单机版中的tomcat,solrhome拷贝到solr-cloud文件夹中。

Tomcat *4个  solrhome*4个

如图所示

二. tomcat修改

1.端口修改

在solr-cloud文件夹中 /tomcat1/conf/server.xml   查询并修改其中的三个port:

其他的tomcat分别修改port的第二个数值为相应数值即可,

如:8180/8109/8105,8280/8209/8205,8380/8309/8305,   8480/8409/8405。。

tomcat1的server.xml配置如下图所示

 

 

tomcat2的server.xml配置如下图所示

 

其他两个以此类推进行配置

 

2. web.xml 修改

分别修改 webapps/solr/WEB-INF/web.xml文件 - 将solrhome和solr关联起来

<env-entry>

       <env-entry-name>solr/home</env-entry-name>

       <env-entry-value>/usr/java/solr-cloud/solrhome1</env-entry-value>

       <env-entry-type>java.lang.String</env-entry-type>

</env-entry>

以此类推

tomcat2 -> /usr/java/solr-cloud/solrhome2

tomcat3 -> /usr/java/solr-cloud/solrhome3

tomcat4 -> /usr/java/solr-cloud/solrhome4

如图所示

3. catalina.sh修改

通过修改这里的JAVA_OPTS将tomcat和zookeeper关联起来。

分别修改四个tomcat/bin/catalina.sh文件

加入:JAVA_OPTS="-DzkHost=(虚拟机本机ip地址):2181,(虚拟机本机ip地址):2182,(虚拟机本机ip地址):2183"     

注意:前后双引号!

粘在如下图所示的地方,四个catalina.sh都是一样的配置,我们依次把剩下的三个也配置了

三. solrhome修改

1. solrhome1下面的solr.xml文件修改

host为对应tomcat1部署的电脑ip,hostport为tomcat1修改后的端口号。

solrhome2(192.168.0.102, 8280)

solrhome3(192.168.0.102, 8380)

solrhome4(192.168.0.102, 8480)

把其他三个依次配置

2.在zookeeper1 ,2 ,3的bin目录下通过./zkServer.sh start命令启动自己的三台zookeeper

3.上传solrhome/core1/conf目录

将conf目录上传到zookeeper中,由zookeeper统一管理配置文件。只需要上传任意一个solrhome中的配置就可以了。

切换到之前solr解压的目录中:/solr-7.6.2/server/scripts/cloud-scripts

执行以下命令:

./zkcli.sh -zkhost (自己电脑ip):2181,(自己电脑ip):2182,(自己电脑ip):2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome1/configsets/sample_techproducts_configs/conf -confname myconf

可以进入zookeeper目录中验证一下是否成功。

在zookeeper1/bin目录下执行 ./zkCli.sh 命令查看zookeeper上的配置文件信息

输入Ls /

出现 configs 代表成功

四. 启动tomcat

新建一个文件,来一键启动tomcat。

vim start-tomcat.sh

/usr/local/solr-cloud/tomcat1/bin/startup.sh

/usr/local/solr-cloud/tomcat2/bin/startup.sh

/usr/local/solr-cloud/tomcat3/bin/startup.sh

/usr/local/solr-cloud/tomcat4/bin/startup.sh

通过chmod +x *sh赋权限

通过./start-tomcat.sh 启动tomcat集群

浏览器中打开:http://(自己电脑ip):8180/solr/index.html

菜单上会出现一个Cloud目录

我们创建新的Collection进行分片处理。

点击页面的Collections按钮,然后就能添加了(高版本的solr才有,低版本的需要通过地址栏传递参数去设置,比较麻烦)

用自己上传的myconf配置文件,有2片shard,每个shard有2个备份节点一主一备

 

实现分片效果如下图

分片:

http://127.0.0.1:8180/solr/admin/collections?action=CREATE&name=core2&numShards=2&replicationFactor=2

在浏览器中直接访问以上地址.

如果报 org.apache.solr.handler.dataimport.DataImportHandler 错误, 则将 solr7.6/contrib/dataimporthandler-extras/lib的jar包拷贝一份到tomcat/webapps/solr/WEB-INF/lib 中去.

刷新solr/index.html页面看看

最终效果:

你会发现,又多出一个core2, 且也是分片的. 以前只有一个主solr, 现在有两个主solr了.

集群搭建完成!

删除不用的Collection:http://127.0.0.1:8180/solr/admin/collections?action=DELETE&name=名称

如果出现403,404报错可以看下如下文章:

solr 7 整合tomcat8 出现403,404错误解决方案:https://blog.csdn.net/qq_37230967/article/details/79138421  

 

谢谢观看,如有建议,欢迎提出。一起交流!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听风动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值