文档章节

windows server 2008下搭建solrCloud

爱运动的小乌龟
 爱运动的小乌龟
发布于 2017/05/22 22:04
字数 1782
阅读 13
收藏 0

一 、概述

    最近几个月装了好几次windows solrcloud伪分布式,参考了其他博客,我自己也总结了一下,包含一些注意和一些错误的解决方法。
    参考博客:
                    http://blog.csdn.net/wanghui2008123/article/details/37813525
                    http://blog.csdn.net/vltic/article/details/20998269

二、环境

    系统:windows server 2008 64位
    软件:jdk-7u80-windows-x64、apache-tomcat-7.0.70、solr-4.10.3、zookeeper-3.4.6
    注意:不同版本的solr配置不一样。

三、部署步骤

    一台服务器部署3个节点。

3.1单机版Tomcat+Solr

    第一步:在D盘根目录下建立solrCloud目录。并把apache-tomcat-7.0.70.tar.gz解压到SolrCloud目录下,重命名为tomcat-server_1。把solr-4.10.3.zip解压,并把solr-4.10.3/example/solr目录下的solr文件夹复制到SolrCloud目录下,重命名为solr_home_1。如下图:

    第二步:把solr-4.10.3\example\webapps\solr.war复制到tomcat-server_1/webapps目录下。

    第三步:修改D:\solrCloud\tomcat-server_1\bin目录下的catalina.bat文件,里面加入tomcat的启动参数,,参数如下:

    set JAVA_OPTS=-Dsolr.solr.home=D:/SolrCloud/solr_home_1

    配置solr/home的第二种方法,在D:\SolrCloud\tomcat-server_1\webapps\solr\WEB-INF\web.xml中配置:

   <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>D:\\SolrCloud\\solr_home_1</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

     关于solr/home的设置,其实有三种方法:1、在solr的web.xml中设置,在tomcat启动时附带参数,还有就是本文的方法。

     第二种方法,必须首先启动,tomcat,然后solr.war解压后才能找到solr\WEB-INF

    第四步:如果solr版本小于4.3,此时单机solr版本就可以启动了,但是我们是4.10.3。启动 tomcat-server_1 ,发现是会报错,此时你会发现D:\SolrCloud\tomcat-server_1\webapps\solr.war被解压成solr文件目录。此处可以删除 D:\SolrCloud\tomcat-server_1\webapps\solr.war,也可以不删除,我建议删除。

    第五步:把solr-4.10.3\solr-4.10.3\example\lib\ext下面所有jar包拷贝到,D:\SolrCloud\tomcat-server_1\webapps\solr\WEB-INF\lib目录

    第六步:在D:\SolrCloud\tomcat-server_1\webapps\solr\WEB-INF创建classes目录,将\solr-4.10.3\example\resources目录下的log4j.properties文件拷贝刚刚建立的classes文件下,并且修改第16行:

        log4j.appender.file.File=../solr_logs/solr.log

       注意:日志路径是自己制定的。

    第七步:启动tomcat,并在浏览器中输入:http://localhost:8080/solr/ 验证是否配置成功。如果配置成功,浏览器的页面如下:

3.2配置多Tomcat+solr同时运行

    第一步:把tomcat-server_1复制2份,分别命名tomcat-server_2,tomcat-server_3;把solr_home_1复制2份,分别命名solr_home_2,solr_home_3。,目录如下:

    第二步:为了三个tomcat能够在一台机器上同时启动,需要修改tomcat的端口信息,即修改 修改位置在D:\solrCloud\tomcat-server_*\conf\server.xml里面的参数,修改方案如下:

                            shutdown port  HTTP/1.1 Port AJP/1.3  port
tomcat-server_1 8005 8080 8009
tomcat-server_2 8015 8081 8019
tomcat-server_3 8025 8082 8029

    第三步:修改各个tomcat服务器catalina.bat文件里面的solrhome

    tomcat-server_2修改成set JAVA_OPTS=-Dsolr.solr.home=D:/solrCloud/solr_home_2
    tomcat-server_3修改成set JAVA_OPTS=-Dsolr.solr.home=D:/solrCloud/solr_home_3

    第四步:验证修改是否成功,依次启动三个Tomcat。并在浏览器输入如下的URL:

    http://localhost:8080/solr/
    http://localhost:8081/solr/
    http://localhost:8082/solr/

    如果都能正常访问到solr的admin页面,那么说明配置是成功的。否则就需要检查哪里错了或者遗漏了。

3.3 配置ZooKeeper集群

    这部分的内容与前面tomcat+solr是没有关联的。
    第一步:解压zookeeper-3.4.6.tar.gz到D:/solrCloud目录,重命名为zk-server_1。
    第二步:把D:\solrCloud\zk-server_1\conf\目录下的zoo_sample.cfg修改为zoo.cfg。并写入如下的配置参数:

tickTime=2000
initLimit=5
syncLimit=2
dataDir=D:/SolrCloud/zk-server_1/data
clientPort=2181
dataLogDir=D:/SolrCloud/zk-server_1/logs
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

    并且按照配置创建相应的data和logs目录。如果不不创建目录是无法正常启动的。在data目录中创建文件myid(不需要后缀名),在myid文件中写入数字1并保存退出。

    第三步:把zk-server_1复制2份,分别命名为zk-server_2、zk-server_3。然后修改各个zk-server的conf目录下zoo.cfg的dataDir和dataLogDir和clientPort。修改方案如下:

  dataDir dataLogDir clientPort
zk-server_1/conf/zoo.cfg D:/solrCloud/zk-server_1/data D:/solrCloud/zk-server_1/logs 2181
zk-server_2/conf/zoo.cfg D:/solrCloud/zk-server_2/data D:/solrCloud/zk-server_2/logs 2182
zk-server_3/conf/zoo.cfg D:/solrCloud/zk-server_3/data D:/solrCloud/zk-server_3/logs 2183

    并且修改每个data目录下的myid文件中的内容。zk-server_1是1, zk-server_2是2,zk-server_3是3 。

    第四步:启动三个zk-server(D:\SolrCloud\zk-server_*\bin\zkServer.cmd)。并验证是否配置成功。注意:连接第一台时有异常信息,不用管,等都连接起来就没有异常了。

3.4 配置Tomcat+solr+zookeeper集群

前面tomcat+solr能够启动和访问了,而且zookeeper也能启动和访问了。接下来就需要把他们关联起来。

    第一步:修改solr_home_*的solr.xml配置信息,把hostPort分别修改成对应的tomcat端口。

    solr_home_1/solr.xml

solr_home_2/solr.xml
<int name="hostPort">${jetty.port:8081}</int>

solr_home_3/solr.xml
<int name="hostPort">${jetty.port:8082}</int>

    第二步:修改tomcat-server_*中的catalina.bat的参数信息。

tomcat-server_1参数信息如下:
set JAVA_OPTS=-Dsolr.solr.home=D:/solrCloud/solr_home_1 -Dbootstrap_confdir=D:/solrCloud/solr_home_1/collection1/conf -Dcollection.configName=myconf -DnumShards=3 -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183


tomcat-server_2的参数信息如下:
set JAVA_OPTS=-Dsolr.solr.home=D:/solrCloud/solr_home_2 -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

 

tomcat-server_3的参数信息如下:
set JAVA_OPTS=-Dsolr.solr.home=D:/solrCloud/solr_home_3 -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

参数解释:-DnumShards=3  表示 3个分片,由于3个节点,系统默认会一个节点一个分片。

 

第三步:由于zookeeper已经启动,先tomcat-server_1,后启动其它的tomcat-server。启动完成后,在浏览器中输入:
http://localhost:8080/solr/#/~cloud
http://localhost:8081/solr/#/~cloud
http://localhost:8082/solr/#/~cloud

如下图:

注意:在第三步中,第一次启动tomcat集群模式时候,必须先tomcat-server_1,后启动其它的tomcat-server,这里我经过多次测试过。由于tomcat-server_1中有DnumShards=3的参数,集群会知道这个collection需要分为3个shard,如果先启动其他tomcat-server,最后启动tomcat-server_1,集群会默认collection只是一个shard做3个备份。

3.5:报错处理

由于我这个步骤是参考别的博文的,所以遇到了一个错误,只要tomcat配置上zookeeper,就不能启动,单机就能启动,大概提示错误如下:org.apache.solr.common.SolrException: Could not load config for solrconfig.xml

窗口报次信息的前一行提示一个错误,大概意思是:shard1已经注册过了

原因:由于我们安装的时候不停的启动tomcat,zookeeper,且有修改tomcat的启动文件,导致zookeeper已经记录了shard1信息,tomcat-server_*启动时候又去注册。

解决方法:清空如下目录
            D:\SolrCloud\zk-server_1\data\version-2
            D:\SolrCloud\zk-server_2\data\version-2
            D:\SolrCloud\zk-server_3\data\version-2

然后重新启动zookeeper,重启动tomcat就好了。

如何避免这个错误:这个错误真正的导致原因是 tomcat-server_1参数 测配置
set JAVA_OPTS=-Dsolr.solr.home=D:/solrCloud/solr_home_1 -Dbootstrap_confdir=D:/solrCloud/solr_home_1/collection1/conf -Dcollection.configName=myconf -DnumShards=3 -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

如果我们配置的时候不配置红色部分,可以自己创建collection

 http://localhost:8080/solr/admin/collections?action=CREATE&name= collection 1&numShards=3

 

本文转载自:https://my.oschina.net/u/2293326/blog/805979

爱运动的小乌龟
粉丝 3
博文 149
码字总数 43760
作品 0
朝阳
私信 提问
windows solrcloud伪分布式搭建

一 、概述 最近几个月装了好几次windows solrcloud伪分布式,参考了其他博客,我自己也总结了一下,包含一些注意和一些错误的解决方法。 参考博客: http://blog.csdn.net/wanghui2008123/ar...

小叮当_加V
2016/12/14
110
0
搭建Tomcat8+ solr-5.5.1+zookeeper3.4.6集群

1、软件环境配置 环境: Windows 7 apache-tomcat-8.0.35下载地址: http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/ Zookeepr v3.4.6 下载地址: http://apache.fayea.com/zookeeper/ solr......

燃點
2016/06/15
288
0
目录(V1.1)

欢迎IT爱好者关注微信公众号:小道讯息 Email:admin@iters.top 路由交换 Cisco三层交换机配置命令及解释 最简单的DHCP配置 路由器最简单的DHCP实验 RIP改static静态 华为交换机基础命令、配置...

小道讯息
2017/07/10
0
0
solr集群solrCloud搭建

SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。 当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜...

黄信程
2017/07/04
0
0
solrCloud搭建的方式方法

solrCloud搭建的方式方法 1.zoookeeper集群搭建 ①下载zookeeper解压,将conf目录下的zoosample.cfg文件重命名为:zoo.cfg。 ②在某个盘符下面新建data和logs两个文件夹,并将zoo.cfg文件的dat...

皮蛋瘦肉粥里没有粥
2015/02/04
71
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
274
6
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
5
0
Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
8
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部