Solr之集群安装-yellowcong

基于Zookeeper进行Solr集群搭建,前提是需要将Zookeeper集群搭建。然后配置Solr服务,其中注意导入solr的配置文件的时候,zkcli.sh脚本是solr的,而不是zookeeper自带的脚本,搭建的时候,先配置好一个solr的环境后,然后复制粘贴整个目录,修改配置文件即可,不要一个一个节点的配置。

搭建前提

solr的集群是依赖于zookeeper的,所以前提必须是将zookeeper搭建好。
1、Zookeeper之集群搭建-yellowcong
2、Shell实战之一键自动部署Zookeeper-yellowcong
3、Solr之单机安装-yellowcong

系统架构图

Solr的架构中,最低的配置是4个Solr容器实例,所以我们这次的安装也是采用的4个容器实例,采用单机伪分布式的安装方式

这里写图片描述

节点服务数据目录
192.168.66.100:2181zookeeper1/tmp/zookeeper1
192.168.66.100:2182zookeeper2/tmp/zookeeper2
192.168.66.100:2183zookeeper3/tmp/zookeeper3
192.168.66.100:8081solr(Tomcat实例)/usr/local/solrColud/solr1
192.168.66.100:8082solr(Tomcat实例)/usr/local/solrColud/solr2
192.168.66.100:8083solr(Tomcat实例)/usr/local/solrColud/solr3
192.168.66.100:8084solr(Tomcat实例)/usr/local/solrColud/solr4

目录结构

在solrColud目录下面,有4个节点,每个节点里面都会有独自的tomcat容器和solr的home

这里写图片描述

Solr集群安装

一般的操作,配置一台后,然后直接拷贝里面所有的到第二台,然后修改solr/home和tomcat的端口即可,不能每台都手动配置,会哭的

1、Tomcat端口修改

由于是单节点安装,所以tomcat的端口号必须不能有冲突,不然就完犊子了,redirectPort=”8443” 不需要配置

tomcat端口分配

节点SHUTDOWN(端口)HTTP/1.1(端口)AJP/1.3(端口)
192.168.66.100:8081800580818009
192.168.66.100:8082800680828010
192.168.66.100:8083800780838011
192.168.66.100:8084800880848012

vim /usr/local/solrColud/solr1/apache-tomcat-7.0.62/conf/server.xml

<Server port="8005" shutdown="SHUTDOWN">

<Connector port="8080" protocol="HTTP/1.1"
                connectionTimeout="20000"
                redirectPort="8443" />

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

2、配置tomcat的solr

配置solr的时候,一定要注意solr/WEB-INF/web.xmlsolr/home都不一样,一定要注意了

#拷贝并进入目录
cp /usr/local/solrColud/solr1/solr-4.10.3/dist/solr-4.10.3.war /usr/local/solrColud/solr1/apache-tomcat-7.0.62/webapps/ && cd $_

#解压需要使用到unzip,没有的朋友,请运行下面命令
#yum install -y unzip

#解压
unzip solr-4.10.3.war -d solr

#删除war包
rm -rf solr-4.10.3.war

##配置solr home环境
vim /usr/local/solrColud/solr1/apache-tomcat-7.0.62/webapps/solr/WEB-INF/web.xml

#每个tomcat 容器的 这个配置都不一样,所以一定要注意了
#/usr/local/solrColud/solr1/solr-4.10.3/example/solr
 <env-entry>
    <env-entry-name>solr/home</env-entry-name>
    <!--目录看你自己的是,不能直接粘贴过去就用-->
    <env-entry-value>/usr/local/solrColud/solr1/solr-4.10.3/example/solr</env-entry-value>
    <env-entry-type>java.lang.String</env-entry-type>
 </env-entry>


#添加solr目录下的包到 tomcat的lib目录下
cp -rf /usr/local/solrColud/solr1/solr-4.10.3/example/lib/ext/* /usr/local/solrColud/solr1/apache-tomcat-7.0.62/lib/

#拷贝数据导入包
cp /usr/local/solrColud/solr1/solr-4.10.3/dist/solr-dataimporthandler-4.10.3.jar /usr/local/solrColud/solr1/apache-tomcat-7.0.62/webapps/solr/WEB-INF/lib/

cp /usr/local/solrColud/solr1/solr-4.10.3/dist/solr-dataimporthandler-extras-4.10.3.jar /usr/local/solrColud/solr1/apache-tomcat-7.0.62/webapps/solr/WEB-INF/lib/

#启动tomcat(solr1节点)
/usr/local/solrColud/solr1/apache-tomcat-7.0.62/bin/startup.sh

#关闭tomcat(solr1节点)
/usr/local/solrColud/solr1/apache-tomcat-7.0.62/bin/shutdown.sh

#查看tomcat 日志
tail -f -n 100 /usr/local/solrColud/solr1/apache-tomcat-7.0.62/logs/catalina.2017-12-06.log

#查看启动情况
curl localhost:8081

3、配置tomcat的catalina.sh

修改每一台solr的tomcat 的 bin目录下catalina.sh文件中加入DzkHost指定zookeeper服务器地址:

vim /usr/local/solrColud/solr1/apache-tomcat-7.0.62/bin/catalina.sh
#添加配置
JAVA_OPTS="-DzkHost=192.168.66.100:2181,192.168.66.100:2182,192.168.66.100:2183"

这里写图片描述

4、拷贝tomcat和solor的home

cp -rf solr1/* solr2/
cp -rf solr1/* solr3/
cp -rf solr1/* solr4/

#更改这两个文件集合,看是solr2 ,solr3 ...看你是咋分配的 
#修改solr的tomcat,避免端口冲突
vim /usr/local/solrColud/solr2/apache-tomcat-7.0.62/conf/server.xml

#修改 solr/home
vim /usr/local/solrColud/solr2/apache-tomcat-7.0.62/webapps/solr/WEB-INF/web.xml

这里写图片描述

5、修改solr.xml文件

修改每一个solrhome下的solr.xml文件。修改host、hostPort两个属性。分别是对应的tomcat的ip及端口号。

vim solr1/solr-4.10.3/example/solr/solr.xml

#ip地址
<str name="host">192.168.66.100</str>
#端口号
<int name="hostPort">8081</int>

这里写图片描述

6、上传配置文件到zookeeper

把配置文件上传到zookeeper。需要使用solr压缩目录下的zkcli.sh脚本 对应路径为solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh,不是zookeeper系统提供的zkCli.sh。。。。。

#上传配置文件到zookeeper(说实话,我第一知道这么样上传的。。。我只用java命令上传过)
/usr/local/solrColud/solr1/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh  -zkhost 192.168.66.100:2181, 192.168.66.100:2182,  192.168.66.100:2183   -cmd upconfig  -confname myconf  -confdir /usr/local/solrColud/solr1/solr-4.10.3/example/solr/collection1/conf/  



#连接zookeeper
/usr/local/zookeeper/zookeeper1/zookeeper-3.4.10/bin/zkCli.sh -server 192.168.66.100:2183

#查看根目录
ls /

#查看配置
ls /configs

#查看
ls /configs/myconf  

注意zkcli是solr提供的,而不是zookeeper系统自带的
这里写图片描述

查看文件是否上传成功
这里写图片描述

7、启动服务

建立脚本,用来启动这里面的tomcat容器

#!/bin/bash

#4 个tomcat 服务器
TOMCAT1="/usr/local/solrColud/solr1/apache-tomcat-7.0.62/bin"
TOMCAT2="/usr/local/solrColud/solr2/apache-tomcat-7.0.62/bin"
TOMCAT3="/usr/local/solrColud/solr3/apache-tomcat-7.0.62/bin"
TOMCAT4="/usr/local/solrColud/solr4/apache-tomcat-7.0.62/bin"

case $1 in
startup)
        echo "start solrcloud"

        echo "start tomcat1"
        echo $TOMCAT1/startup.sh
        sh $TOMCAT1/startup.sh

        echo "start tomcat2"
        echo $TOMCAT2/startup.sh
        sh $TOMCAT2/startup.sh

        echo "start tomcat3"
        echo $TOMCAT3/startup.sh
        sh $TOMCAT3/startup.sh

        echo "start tomcat4"
        echo $TOMCAT4/startup.sh
        sh $TOMCAT4/startup.sh


;;

shutdown)
        echo "stop solrcloud"

        echo "start tomcat1"
        echo $TOMCAT1/shutdown.sh
        sh $TOMCAT1/shutdown.sh

        echo "start tomcat2"
        echo $TOMCAT2/shutdown.sh
        sh $TOMCAT2/shutdown.sh

        echo "start tomcat3"
        echo $TOMCAT3/shutdown.sh
        sh $TOMCAT3/shutdown.sh

        echo "start tomcat4"
        echo $TOMCAT4/shutdown.sh
        sh $TOMCAT4/shutdown.sh
;;
status)
        #ps ef|grep tomcat
        #查看有多少tomcat实例运行
        count=$(ps -ef |grep tomcat |grep -v "grep" |wc -l)
        echo${count}个tomcat 运行

;;
*)
        echo "./solrcloud.sh startup|shutdown|status"
        exit 1
;;
esac
exit 0

这里写图片描述

启动tomcat
这里写图片描述

打开浏览器查看节点信息

登录查看节点信息。

#登录后,效果还是一样的。
http://192.168.66.100:8081/solr/
http://192.168.66.100:8082/solr/
http://192.168.66.100:8083/solr/
http://192.168.66.100:8084/solr/

这里写图片描述

我重启了一下发现,妈蛋,又挂了几个节点。。。难道是我的姿势不对吗,(不是姿势不读,是没有完全启动服务,所以慢了一波。。)
这里写图片描述

参考文章

http://josh-persistence.iteye.com/blog/2234411
https://www.cnblogs.com/append/p/5747956.html
http://blog.csdn.net/jeofey/article/details/50749446

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

狂飙的yellowcong

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

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

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

打赏作者

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

抵扣说明:

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

余额充值