今天整理的是 在linux 环境中zookeeper搭建而且创建多个solr实例,和solr的集群搭建。linux
使用环境和工具:linuxCentOS6.5 , apache-tomcat-7.0.47.tar.gz,jdk-7u55-linux-i586.tar.gz ,solr-4.10.3.tgz.tgz ,zookeeper-3.4.6.tar.gzweb
注:因为本人是win7系统,因此安装的是linux虚拟机。apache
JDK这里就不写安装步骤了网上其余大神也写过,能够去搜索一个。vim
————————————————————黄金分割线——————————————————tomcat
搭建zookeeper:服务器
在linux环境中先创建一个文件夹 放置解压的zookeeper压缩包:app
[root@localhost ~]# mkdir /usr/local/solrcloudwebapp
解压zookeeper压缩包,并保存在刚刚创建的文件中重命名,三个zookeeper实例:工具
[root@localhost 文件位置]# tar -zxvf zookeeper-3.4.6.tar.gz 测试
[root@localhost 文件位置]# cp -r zookeeper-3.4.6 /usr/local/solrcloud/zookeeper1
[root@localhost 文件位置]# cp -r /usr/local/solrcloud/zookeeper1 /usr/local/solrcloud/zookeeper2
[root@localhost 文件位置]# cp -r /usr/local/solrcloud/zookeeper1 /usr/local/solrcloud/zookeeper3
在每个zookeeper文件夹中建立一个data文件加并在其中创建一个myid,件的内容就是此zookeeper的编号一、二、3:
[root@localhost ~]# mkdir /usr/local/solrcloud/zookeeper1/data
[root@localhost ~]# mkdir /usr/local/solrcloud/zookeeper2/data
[root@localhost ~]# mkdir /usr/local/solrcloud/zookeeper3/data
[root@localhost ~]# echo 1 >> /usr/local/solrcloud/zookeeper1/data/myid
[root@localhost ~]# echo 2 >> /usr/local/solrcloud/zookeeper2/data/myid
[root@localhost ~]# echo 3 >> /usr/local/solrcloud/zookeeper3/data/myid
将每个zookeeper/conf文件夹中的zoo_sample.cfg文件复制一个份名叫zoo.cfg,而且修改zoo.cfg文件:
[root@localhost ~]# cp -r /usr/local/solrcloud/zookeeper1/conf/zoo_sample.cfg /usr/local/solrcloud/zookeeper1/conf/zoo.cfg
[root@localhost ~]# cp -r /usr/local/solrcloud/zookeeper1/conf/zoo_sample.cfg /usr/local/solrcloud/zookeeper2/conf/zoo.cfg
[root@localhost ~]# cp -r /usr/local/solrcloud/zookeeper1/conf/zoo_sample.cfg /usr/local/solrcloud/zookeeper3/conf/zoo.cfg
zoo.cfg配置文件的修改
目前zookeeper的三个实例的搭建已经完成能够先启动看看有什么其余问题,这个建议建立一个.sh文件能够一块儿将三个实例一块儿启动。
zookeeper启动 :[root@localhost ~]# ./zkServer.sh start
zookeeper中止:[root@localhost ~]# ./zkServer.sh stop
查看zookeeper状态:[root@localhost ~]# ./zkServer.sh status
————————————————————黄金分割线——————————————————
建立四个solr实例:
建立一个tomcat文件夹便于将他们放在一块儿,四个tomcat都放在tomcat文件,为他们加上标号
即:tomcat1,tomcat2,tomcat3,tomcat4,
tomcat端口号分别设定为8080-8083,
apache和tomcat连接的端口分别设定为(前台apache就是经过AJP协议与tomcat进行通讯):
8109-8112
负责监听关闭tomcat的请求的端口分别设定为: 8005-8008
[root@localhost ~]# mkdir /usr/local/tomcat
解压 apache-tomcat-7.0.47.tar.gz,solr-4.10.3.tgz.tgz :
tomcat:
[root@localhost 文件位置]# tar -zxvf apache-tomcat-7.0.47.tar.gz
[root@localhost 文件位置]# tar -zxvf solr-4.10.3.tgz.tgz
将解压的apache-tomcat-7.0.47文件放到tomcat文件并命名为tomcat1 ,再建立3个实例
[root@localhost 文件位置]# cp-r apache-tomcat-7.0.47 /usr/local/tomcat/tomcat1
[root@localhost 文件位置]# cp-r apache-tomcat-7.0.47 /usr/local/tomcat/tomcat2
[root@localhost 文件位置]# cp-r apache-tomcat-7.0.47 /usr/local/tomcat/tomcat3
[root@localhost 文件位置]# cp-r apache-tomcat-7.0.47 /usr/local/tomcat/tomcat4
将解压的solr-4.10.3/dist文件夹中的solr-4.10.3.war 复制到每个tomcat实例中的webapps文件家中命名为solr:
[root@localhost 文件位置]# cp -r solr-4.10.3.war /usr/local/tomcat/tomcat1/webapps/solr.war
[root@localhost 文件位置]# cp -r solr-4.10.3.war /usr/local/tomcat/tomcat2/webapps/solr.war
[root@localhost 文件位置]# cp -r solr-4.10.3.war /usr/local/tomcat/tomcat3/webapps/solr.war
[root@localhost 文件位置]# cp -r solr-4.10.3.war /usr/local/tomcat/tomcat4/webapps/solr.war
启动每个tomcat将其war包解压再将war包删除 :
启动命令:tomcat/bin/startup.sh
[root@localhost ~]# rm -r /usr/local/tomcat/tomcat1/webapps/solr.war (剩下三个略。)
将solr-4.10.3/example/lib/ext 中的全部jar包放到tomcat中solr项目里面的lib文件里面:
[root@localhost ext]# cp -r ext/* /usr/local/tomcat/tomcat1/webapps/solr/WEB-INF/lib
(剩下三个略。)
复制4分solr-4.10.3/example中的solr文件 而且命名为solrhome(我在这里将其都放在了tomcat文件夹里面了)
[root@localhost example]# cp -r solr /usr/local/tomcat/solrhome1(剩下三个略。)
修改每个solr项目的web.xml定义solrhome文件路径:
建立四个solr实例完毕
————————————————————黄金分割线——————————————————
搭建solrcloud的搭建:
将solrhome中的配置文件上传到zookeeper客户端中:
客户端命令位置: [root@localhost solr-4.10.3]# cd /example/scripts/cloud-scripts
上传命令:
[root@localhost cloud-scripts]
./zkcli.sh -zkhost 192.168.110.130:2181,192.168.110.130:2182,192.168.110.130:2183 -cmd upconfig -confdir /usr/local/tomcat/solrhome1/collection1/conf -confname myconf
注:上传时候把zookeeper三个实例打开否则会上传失败
测试是否上传成功(略):
修改每个solrhome中的solr.xml文件,指定当前实例运行的ip地址及端口号:
[root@localhost solrhome1]vim /usr/local/tomcat/solrhome1/solr.xml (另外三个略。)
如图:
修改每个tomcat实例中bin/catalina.sh文件的DzkHost指定zookeeper服务器地址:
JAVA_OPTS="-DzkHost=192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183"
注:可使用vim的查找功能查找到JAVA_OPTS的定义的位置,而后添加:
如图:
从新启动tomcat。完成solrcloud的搭建。
————————————————————黄金分割线——————————————————
使用如下命令建立:
http://192.168.110.130:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
删除collection1:
http://192.168.110.130:8080/solr/admin/collections?action=DELETE&name=collection1