一、 说明
本次分布式部署solr是在两台服务器(10.21.16.31和10.21.16.34)上部署5个结点,10.21.16.31服务器部署3个结点,10.21.16.34服务器部署2个结点
二、 下载需要的工具包
zookeeper-3.4.5.tar.gz,tomcat-7.0.50.tar.gz,solr-4.10.1.tgz(jdk必须是7,可以使用系统自带的openJDK)
三、 添加用户
分别在两台服务器上添加solr用户
useradd solr
passwd solr
四、 安装Zookeeper
1.切换到solr用户 su solr
2进入zookeeper的tar包目录:cd
/home
2.解压tar包到指定目录:tar -zxvf zookeeper-3.4.5.tar.gz
3.进入zookeeper的conf目录:cd /home/
zookeeper-3.4.5/conf
4.修改配置文件zoo_sample.cfg为zoo.cfg:mv
zoo_sample.cfg zoo1.cfg
5.修改配置文件zoo_sample.cfg为zoo.cfg:mv
zoo_sample.cfg zoo2.cfg
6.修改配置文件zoo_sample.cfg为zoo.cfg:mv
zoo_sample.cfg zoo3.cfg
5.修改zoo1.cfg配置文件内容:dataDir=/home/zookeeper-3.4.5/zk1ClientPort=2181,同时在zookeeper-3.4.5目录下新建zk1目录
6. 修改zoo2.cfg配置文件内容:dataDir=/home/zookeeper-3.4.5/zk2,ClientPort=2182,同时在zookeeper-3.4.5目录下新建zk2目录
7. 修改zoo3.cfg配置文件内容:dataDir=/home/zookeeper-3.4.5/zk3,ClientPort=2183,同时在zookeeper-3.4.5目录下新建zk3目录
6.在zoo1.cfg、zoo2.cfg、zoo3.cfg最后添加如下内容:
server.1=10.21.16.31:2888:3888
server.2=10.21.16.31:2889:3889
server.3=10.21.16.31:2890:3890
server.4=10.21.16.34:2888:3888
server.5=10.21.16.34:2889:3889
说明:server.X=A:B:C
其中X是一个数字, 表示这是第几号server.
A是该server所在的IP地址.
B配置该server和集群中的leader交换消息所使用的端口.
C配置选举leader时所使用的端口.
7.分别在zk1,zk2,zk3新建文件myid,zk1/myid文件值为1,zk2/myid文件值为2,zk3/myid文件值为3
8.将配置到的zookeeper-3.4.5拷贝到10.21.16.34服务器主机上
9.切换到10.21.6.34服务器的solr用户下
10..进入zookeeper的conf目录:cd
/home/ zookeeper-3.4.5/conf
11.修改配置文件zoo1.cfg为zoo4.cfg:mv
zoo1.cfg zoo4.cfg
12.修改配置文件zoo2.cfg为zoo5.cfg:mv
zoo2.cfg zoo5.cfg
13.删除zoo3.cfg: rm zoo3.cfg
14. 修改zoo4.cfg配置文件内容:dataDir=/home/zookeeper-3.4.5/zk4ClientPort=2184,同时在zookeeper-3.4.5目录下新建zk4目录
15. 修改zoo2.cfg配置文件内容:dataDir=/home/zookeeper-3.4.5/zk5ClientPort=2185,同时在zookeeper-3.4.5目录下新建zk5目录
16.修改zk4/myid文件值为4,zk5/myid文件值为5
17.分别在31和34上启动zookeeper,切换到bin目录下: cd /home/zookeeper-3.4.5/bin
18.在1上先后执行./zkServer.sh start zoo1.cfg ./zkServer.sh start zoo2cfg ./zkServer.sh
start zoo3.cfg
19. 在34上先后执行./zkServer.sh start zoo4.cfg ./zkServer.sh start zoo5.cfg
由于启动时,每个节点都会试图去连接其它节点,因此先启动的刚开始会连接不上其它的,导致日志中会包含错误信息,在未全启动之前,这个属正常现象。可以用./zkServer.sh status zoo1.cfg查看状态。至此zookeeper安装结束!
五、 安装Solr
1. 进入tomcat、solr的tar包目录:cd /home/solr
2. 解压tomcattar包: tar -zxvf
tomcat-7.0.50.tar.gz
3. 重命名tomcat解压后文件名mv
tomcat-7.0.50 apache-tomcat-7.0.50_1
4. 解压solr tar包:tar –zxvf solr-4.10.1.tgz
5. 将solr-4.10.1/example/webapps/solr.war 到 apache-tomcat-8.0.12/webapps/目录中 直接解压 solr.war 或者启动tomcat 解压 solr.war
6. 新建data1目录:mkdir data1
7. 将solr-4.10.1/example/solr文件夹移到data1中: mv /home/solr/solr-4.10.1/example/solr /home/solr/data1
8. 复制solr-4.10.1/example/lib/ext下的jar包到/home/solr/apache-tomcat-7.0.50_1/webapps/solr/WEB-INF/lib:cp -av /home/solr/solr-4.10.1/example/lib/ext/*.jar /home/solr/apache-tomcat-7.0.50_1/webapps/solr/WEB-INF/lib
9. 在/home/solr/apache-tomcat-7.0.50_1/webapps/solr/WEB-INF下新建classes文件夹:mkdir classes
10. 将solr-4.10.1/example/resources/log4j.properties复制到/home/solr/apache-tomcat-7.0.50_1/webapps/solr/WEB-INF/classes:mv /home/solr/solr-4.10.1/example/resources/log4j.properties /home/solr/apache-tomcat-7.0.50_1/webapps/solr/WEB-INF/classes
11. 修改/home/solr/data1/solr/collection1/conf/solr/solrconfig.xml:vi /home/solr/data1/solr/collection1/conf/solr/solrconfig.xml
12. 修改内容如下:(1)<dataDir>${solr.data.dir:/home/solr/data1/solr/collection1/data}</dataDir>
(2)<lockType>simple</lockType>
(3)<unlockonStartup>启用,并修改为<unlockonStartup>true</unlockonStartup>
13. 修改/home/solr/data1/solr/solr.xml:vi /home/solr/data1/solr/solr.xml
14. 修改内容如下:<intname="hostPort">${jetty.port:8081}</int>
15. 修改/home/solr/apache-tomcat-7.0.50_1/webapps/solr/WEB-INF/web.xml:vi /home/solr/apache-tomcat-7.0.50_1/webapps/solr/WEB-INF/web.xml
16. <env-entry>标签启用,同时修改为
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/home/solr/data1/solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
17. 修改/home/solr/apache-tomcat-7.0.50_1/conf/server.xml:vi /home/solr/apache-tomcat-7.0.50_1/conf/server.xml
18. 将8080端口改为8081
19. 修改/home/solr/apache-tomcat-7.0.50_1/bin/catalina.sh:vi /home/solr/apache-tomcat-7.0.50_1/bin/catalina.sh
20. JAVA_OPTS属性启用,同时修改为JAVA_OPTS="$JAVA_OPTS-Dbootstrap_confdir=/home/solr/data1/solr/collection1/conf-Dcollection.configName=myconf
-Dbootstrap_config=true -DzkHost=10.21.16.31:2181,10.21.16.31:2182,10.21.16.31:2183,10.21.16.34:2184-DnumShards=2"
21. 复制apache-tomcat-7.0.50_1得到apache-tomcat-7.0.50_2、apache-tomcat-7.0.50_3
22. 分别修改apache-tomcat-7.0.50_2、apache-tomcat-7.0.50_3中webapps/solr/WEB-INF/web.xml、conf/server.xml、bin/catalina.sh相对应的值,注意:其中bin/catalina.sh应为JAVA_OPTS="$JAVA_OPTS-Dbootstrap_confdir=/home/solr/data2/solr/collection1/conf-DzkHost=10.21.16.31:2181,10.21.16.31:2182,10.21.16.31:2183,10.21.16.34:2184,如果是apache-tomcat-7.0.50_3中,则为JAVA_OPTS="$JAVA_OPTS
-Dbootstrap_confdir=/home/solr/data3/solr/collection1/conf-DzkHost=10.21.16.31:2181,10.21.16.31:2182,10.21.16.31:2183,10.21.16.34:2184
23. 复制data1得到data2、data3
24. 分别修改data2、data3中solr/collection1/conf/solr/solrconfig.xml、solr/solr.xml
25. 将apache-tomcat-7.0.50_2、apache-tomcat-7.0.50_3、data2、data3复制到34服务器上,分别修改为apache-tomcat-7.0.50_4、apache-tomcat-7.0.50_5、data4、data5,并做相应对应的更改,至此所有的配置都结束,启动5个结点的tomcat,访问任一结点下的solr,选择主界面上的cloud即可看见solr分布式部署情况!