ZooKeeper实例 + Solr(tomcat)集群部署


1.物理结构:

2台centos6.3 x64

solr1    172.18.85.155   安装服务ZooKeeper端口9080和solr(tomcat) 端口8080

solr2    172.18.85.134   安装服务solr(tomcat) 端口8080

2.要达到的目的图:

QQ截图20130913151349.png

3.在solr1上安装ZooKeeper:

去官网下载最新版本:http://zookeeper.apache.org/releases.html#download

下载并解压:

[root@sky local]# pwd
/usr/local
[root@sky local]# wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz

[root@sky local]# tar zxvf zookeeper-3.4.5.tar.gz 

修改配置文件,进入到zookeeper下的conf文件夹,复制zoo_sample.cfg为zoo.cfg

[root@sky conf]# pwd
/usr/local/zookeeper-3.4.5/conf

[root@sky conf]# cp zoo_sample.cfg zoo.cfg 
[root@sky conf]# ls
configuration.xsl  log4j.properties  zoo.cfg  zoo_sample.cfg

编辑文件:

[root@sky conf]# vim zoo.cfg 

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/zookeeper-3.4.5/data #这里是zookeeper数据路径
# the port at which the clients will connect
clientPort=9080 #zookeeper运行端口号
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
~    

建立zookeeper数据路径:

[root@sky zookeeper-3.4.5]# pwd
/usr/local/zookeeper-3.4.5

[root@sky zookeeper-3.4.5]# mkdir data                         
启动zoopkeeper服务:

[root@sky conf]# cd ..
[root@sky zookeeper-3.4.5]# cd bin/
[root@sky bin]# sh zkServer.sh start

zoopkeeper配置完毕。

4.在solr1上面配置solr服务,由于solr是在tomcat上面运行的所以首先部署安装jdk环境,

去jdk官网下载安装包:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

解压jdk压缩包

[root@sky jdk]# pwd
/usr/local/jdk

[root@sky jdk]# ls
bin  COPYRIGHT  db  demo  include  jre  lib  LICENSE  man  README.html  register.html  register_ja.html  register_zh_CN.html  sample  src.zip  THIRDPARTYLICENSEREADME.txt
配置环境变量,在/etc/profile文件下面添加以下参数:

[root@sky jdk]# vim /etc/profile

JAVA_HOME=/usr/local/jdk
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
使环境变量生效:

[root@sky jdk]# source /etc/profile

测试jdk环境量是否配置成功:

[root@sky jdk]# java -version
java version "1.6.0_30"  #这里显示的版本是您下载的版本就说明配置成功。
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode)

5.配置solr1,下载tomcat和solr

[root@sky solr4.3]# ls
apache-tomcat-6.0.37-solr4.3_20130906.zip  apache-tomcat-7.0.42.tar.gz

分别解压文件:

[root@sky solr4.3]# ls
apache-tomcat-6.0.37-solr4.3_20130906.zip  apache-tomcat-7.0.42.tar.gz  mmseg4j-1.9.1  solr-4.3.0  tomcat-7.0.42  tomcat-solr
在tomcat下面建立solr家目录

[root@sky tomcat-7.0.42]# mkdir solrhome/

把solr-4.3.0/example/solr 复制到solr的家目录tomcat-7.0.42/solrhome/

[root@sky solr4.3]# cp solr-4.3.0/example/solr tomcat-7.0.42/solrhome/

记住我们建立的solrhome路径等会我们用得着:

[root@sky solr]# pwd
/usr/local/tomcat-7.0.42/solrhome/solr

编辑tomcat下solr家目录配置文件:

[root@sky solr]# pwd
/usr/local/tomcat-7.0.42/solrhome/solr

[root@sky solr]# vim solr.xml

 <cores adminPath="/admin/cores" defaultCoreName="collection1" host="${host:172.18.85.155}" hostPort="${jetty.port:8080}" hostContext="${hostContext:solr}" zkClientTimeout="${zkClientTimeout:15000}">
    <core name="collection1" instanceDir="collection1" />
  </cores>

修改ip和端口

复制solr-4.3.0/dist/solr-4.3.0.war  到 tomcat-7.0.42/webapps/下面并更名为

[root@sky solr4.3]# cp -rf solr-4.3.0/dist/solr-4.3.0.war  tomcat-7.0.42/webapps/solr.war

此时我们的tomcat-7.0.42/webapps/目录下是这样的

[root@sky webapps]# ls
docs  examples  host-manager  manager  ROOT  solr.war
我们需要重启一下tomcat使solr.war自动生成solr文件夹:

[root@sky bin]# pwd
/usr/local/tomcat-7.0.42/bin
[root@sky bin]# sh startup.sh 
[root@sky bin]# sh shutdown.sh 

重启后我们再次进入tomcat-7.0.42/webapps/文件夹下面:

[root@sky tomcat-7.0.42]# cd webapps/
[root@sky webapps]# ls
docs  examples  host-manager  manager  ROOT  solr solr.war

此时已经生成了solr文件夹,我们需要把solr.war删除

[root@sky webapps]# rm -rf solr.war

下面编辑solr下面的web.xml文件

[root@sky WEB-INF]# pwd
/usr/local/tomcat-7.0.42/webapps/solr/WEB-INF
[root@sky WEB-INF]# ls
lib  mmseg4j-1.9.1.zip  weblogic.xml  web.xml

[root@sky WEB-INF]# vim web.xml 

    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/tomcat-7.0.42/solrhome/solr</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

这里<env-entry-value>/usr/local/tomcat-7.0.42/solrhome/solr</env-entry-value>更改成我们刚刚建立的solrhome路径,上面我已特别提醒。

ok solr1基本上配置完毕,下面我们测试一下效果,启动tomcat,打开solr管理界面:http://172.18.85.155:8080/solr/#/

QQ截图20130913160358.png

能显示上面的图就说明没问题。

我们要把solr1(172.18.85.155)配置好的tomcat复制到solr2(172.18.85.134),文件不用修改直接启动tomcat即可。

当然solr2也要同样配置jdk环境,环境的配置就不多说了。solr1配置好的tomcat复制到solr2以后启动一下tomcat看是否能打开管理界面,能打开就没有问题。

6.下面我们来配置zookeeper集群。

在solr1(172.18.85.155)tomcat上面修改catalina.sh

[root@sky bin]# pwd
/usr/local/tomcat-7.0.42/bin
[root@sky bin]# vim catalina.sh

在文件最上面添加,记住是最上面:

JAVA_OPTS="-Dbootstrap_confdir=/usr/local/solr4.3/tomcat-7.0.42/solrhome/solr/collection1/conf -Dcollection.configName=clusterconf -Djetty.port=8080 -Dhost=172.18.85.155 -DzkRun -DzkHost=localhost:9080 -DnumShards=1"

备注:

-Dbootstrap_confdir=/usr/local/solr4.3/tomcat-7.0.42/solrhome/solr/collection1/conf #solrhome配置文件的路径,没有的话手动创建一下

-Djetty.port=8080 #本机tomcat端口

-Dhost=172.18.85.155 #本机ip

-DzkHost=localhost:9080 #zookeeper运行端口

在solr2(172.18.85.134)tomcat上面修改catalina.sh

[root@bak bin]# pwd
/usr/local/tomcat-7.0.42/bin
[root@bak bin]# vim catalina.sh

在文件最上面添加,记住是最上面:

JAVA_OPTS="-Djetty.port=8080 -DzkHost=172.18.85.155:9080"

备注:

-Djetty.port=8080 #本机tomcat端口

-DzkHost=172.18.85.155:9080 #安装zookeeper服务主机的ip和端口

修改完毕后重启两台tomcat,打开测试地址看看是否成功:

http://172.18.85.155:8080/solr/#/~cloud

QQ截图20130913161435.png

显示上面的图就说明配置成功,ok,所有的配置到此结束,有什么不懂的地方可以咨询我。


Whatever is worth doing is worth doing well.