Solr之集群安装-yellowcong

来源:互联网 发布:男女合唱网络流行歌曲 编辑:程序博客网 时间:2024/06/14 04:41

基于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:2181 zookeeper1 /tmp/zookeeper1 192.168.66.100:2182 zookeeper2 /tmp/zookeeper2 192.168.66.100:2183 zookeeper3 /tmp/zookeeper3 192.168.66.100:8081 solr(Tomcat实例) /usr/local/solrColud/solr1 192.168.66.100:8082 solr(Tomcat实例) /usr/local/solrColud/solr2 192.168.66.100:8083 solr(Tomcat实例) /usr/local/solrColud/solr3 192.168.66.100:8084 solr(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:8081 8005 8081 8009 192.168.66.100:8082 8006 8082 8010 192.168.66.100:8083 8007 8083 8011 192.168.66.100:8084 8008 8084 8012
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/homevim /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 instartup)        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;;esacexit 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

原创粉丝点击