win7 下搭建tomcat7+solr5.3.1+zookeeper3.4.6 单机版集群

在前一篇中,已经分享了 solr 与tomcat 的集成, 下面继续分享,在单机环境下搭建集群,由于前一篇 solr 的一些东西都是放在tomcat 中,这篇文章将一些东西与tomcat 分离开来,便于维护

一:环境准备

1:tomcat7

2:solr5.3.1

3:zookeeper3.4.6

二:环境搭建
One: tomcat 配置(路径:D:\solr\apache-tomcat-7.0.40 - 9091)

  1:解压tomcat,并重命名为apache-tomcat-7.0.40 - 9091, 同时在复制两份,分别命名为:
    apache-tomcat-7.0.40 - 9092  apache-tomcat-7.0.40 - 9093

 2: 修改tomcat 启动端口号,具体怎么修改 可以百度,只要修改 server.xml  3处地方即可

 3: 同时启动tomcat 看看是否都配置成功

Two:solr 配置(solr 解压路径:D:\solr\solr-5.3.1)

   1:新建solr_home_1 文件夹(路径:D:\solr\solr_home_1),并在此目录下创建 home 和server 文件夹

   2:把D:\solr\solr-5.3.1\example\example-DIH\solr 下的 solr文件夹和solr.xml 复制到D:\solr\solr_home_1\home 下面去

  3: 把D:\solr\solr-5.3.1\server\solr-webapp下的webapp目录复制到D:\solr\solr_home_1\server 文件夹下,并将webapp 更名为solr

  4:修改D:\solr\solr_home_1\server\solr\WEB-INF\web.xml 新增solr/home 的值(大概在47行下新增)
     
       solr/home
       D:/solr/solr_home_1/home
       java.lang.String
    


5:在D:\solr\solr_home_1\server\solr\WEB-INF 目录下创建classes 文件夹 ,把D:\solr\solr-5.3.1\example\resources\log4j.properites文件复制到classes目录下。

6:修改D:\solr\apache-tomcat-7.0.40 - 9091\conf\server.xml 指向solr服务路径。  在host 节点下新增(这里不知道的可以百度,tomcat 设置虚拟目录)
    
   
win7 下搭建tomcat7+solr5.3.1+zookeeper3.4.6 单机版集群_第1张图片
Paste_Image.png
 7:将D:\solr\solr-5.3.1\dist 和D:\solr\solr-5.3.1\server\lib\ext 下的jar包 复制到 D:\solr\solr_home_1\server\solr\WEB-INF\lib 下

8: 启动tomcat 访问http://localhost:9091/solr/ 查看是否成功

Three:配置多tomcat+solr

  1: 将sorl_home_1 同样复制2份,分别命名为:sorl_home_2  ;sorl_home_3

 2:修改D:\solr\solr_home_2\server\solr\WEB-INF\web.xml 新增solr/home 的值(大概在47行下新增)
     
       solr/home
       D:/solr/solr_home_2/home
       java.lang.String
    

3:sorl_home_3 中的也同样修改一下


4:修改 apache-tomcat-7.0.40 - 9092 和 apache-tomcat-7.0.40 - 9093 下的 server.xml (对应上面的第6步,增加Context 节点,)
如:

 


 




5: 验证是否成功, 同时启动3个tomcat, ,是否能访问到solr
      http://localhost:9091/solr/
      http://localhost:9092/solr/
      http://localhost:9093/solr/

三: 配置 zookeeper 集群

1: 解压zookeeper3.4.6 到D:\solr(解压后路径:D:\solr\zookeeper3.4.6)

2:复制刚刚解压的zookeeper3.4.6 更名为zookeeper-1  并在目录下新建 data 跟datalog 文件夹(D:\solr\zookeeper-1\data 跟D:\solr\zookeeper-1\datalog)

3:把D:\solr\zookeeper-1\conf\zoo_sample.cfg 修改为zoo.cfg ,并写入配置参数
dataDir=D:/solr/zookeeper-1/data
dataLogDir=D:/solr/zookeeper-1/logs
clientPort=2181
server.1=127.0.0.1:2788:3788
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2988:3988
如下图:
win7 下搭建tomcat7+solr5.3.1+zookeeper3.4.6 单机版集群_第2张图片
Paste_Image.png
 4: 在D:/solr/zookeeper-1/data 目录下新建文件 myid ,不需要后缀名 ,并在文件中写入数字 1保存
Paste_Image.png
5:把zookeeper-1 文件同样复制两份,更名为:zookeeper-2;zookeeper-3 ,然后修改 下面的zoo.cfg 文件,跟修改1 的一样

dataDir=D:/solr/zookeeper-2/data
dataLogDir=D:/solr/zookeeper-2/logs
clientPort=2281
server.1=127.0.0.1:2788:3788
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2988:3988

dataDir=D:/solr/zookeeper-3/data
dataLogDir=D:/solr/zookeeper-3/logs
clientPort=2381
server.1=127.0.0.1:2788:3788
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2988:3988


并且修改每个data 下的myid 文件的内容, zookeeper-1是1, zookeeper-2是2,zookeeper-3是3 
6:启动 三个zookeeper ,可以直接点击D:\solr\zookeeper-1\bin\zkServer.cmd 文件启动,也可以通过cmd 去启动;

注意, 启动第一台的时候会有异常,不用去管,后面都启动后就好了,下面是第一台启动异常图:

win7 下搭建tomcat7+solr5.3.1+zookeeper3.4.6 单机版集群_第3张图片
Paste_Image.png

四:搭建tomcat+solr5.3.1+zookeeper 集群

1: 上面 tomcat+solr 也能正常访问了, zookeeper 也可以正常启动了,下面就要把他们给关联起来 , solrCloud 的所有配置都需要zookeeper 的统一管理

2: 将需要的配置库几种放到一个目录中去

   创建 cloud_conf 文件夹(目录:D:\solr\cloud_conf) ,将
D:\solr\solr-5.3.1\server\solr\configsets\sample_techproducts_configs\conf 下的所有文件复制到 D:\solr\cloud_conf 下面去

3:配置zookeeper 路径

在D:\solr\apache-tomcat-7.0.40 - 9091\bin\catalina.bat文件中 ,添加下面代码

set JAVA_OPTS=-Dbootstrap_confdir=D:/solr/cloud_conf -Dcollection.configName=myconf -DzkHost=127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381 -DnumShards=3

注意: 这里是没有引号的,有的文章上写的有引号,坑了我好久没成功

配置参数解释:


-DzkHost是用来指定zookeeper服务器的ip和端口。


-Dnumshareds=3 用来指定当前集群中分片数为3


-Dcollection.configName 是在指定你的配置文件上传到zookeeper后的名字,省略这个参数将导致配置名字为默认的“configuration1”


-Dbootstrap_confdir :zooKeeper需要准备一份集群配置的副本,所以这个参数是告诉SolrCloud这些 配置是放在哪里。同时作为整个集群共用的配置文件。可以看作是第一份solr配置。因为后续我们可以通过上传,来实现多collection。


-----其余tomcat  下的catalina.bat 设置:
  set JAVA_OPTS="-DzkHost=127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381"
如下图:
win7 下搭建tomcat7+solr5.3.1+zookeeper3.4.6 单机版集群_第4张图片
Paste_Image.png
4:修改D:\solr\solr_home_1\home,D:\solr\solr_home_2\home,D:\solr\solr_home_3\home下的solr.xml 新增如下代码

   
    ${host:}

    9091
    ${hostContext:solr}

    ${genericCoreNodeNames:true}

    ${zkClientTimeout:30000}
    ${distribUpdateSoTimeout:600000}
    ${distribUpdateConnTimeout:60000}

  

  
    ${socketTimeout:600000}
    ${connTimeout:60000}
  
win7 下搭建tomcat7+solr5.3.1+zookeeper3.4.6 单机版集群_第5张图片
Paste_Image.png

5:重启tomcat ,访问http://localhost:9091/solr/ ,能正常访问, 且菜单中出现cloud 选项,说明配置成功。

win7 下搭建tomcat7+solr5.3.1+zookeeper3.4.6 单机版集群_第6张图片
Paste_Image.png

6:接下来分别从Core Admin创建一个Core ,(当collection 名称一样的core ,索引是通用的)

win7 下搭建tomcat7+solr5.3.1+zookeeper3.4.6 单机版集群_第7张图片
Paste_Image.png

五: zookeeper 常用命令

  1:通过 rest 接口 来创建 collection
     localhost:9091/solr/admin/collections?action=CREATE&name=mycollection1&numShards=3&replicationFactor=1



2:上传另一份collection配置文件  ,在window cmd模式:

java -classpath .;D:/solr/solr_home_1/server/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381 -confdir D:/solr/cloud_conf -confname mycollection2 

命令说明:


上传(upconfig) 到指定的服务(-zkhost 27.0.0.1:2181, 127.0.0.1:2281, 127.0.0.1:2381) 配置文件路径(-confdir):D:/solr/cloud_conf。 配置名称(-confname)为: mycollection2 

注: 要添加D:/solr/solr_home_1/server/solr/WEB-INF/lib/*  cmd才能识别 org.apache.solr.cloud.ZkCLI 的命令。

--成功以后 ,强刷页面, 会出现如图:
win7 下搭建tomcat7+solr5.3.1+zookeeper3.4.6 单机版集群_第8张图片
Paste_Image.png
 3: 删除 collection 
   java -classpath .;D:/solr/solr_home_1/server/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd clear /configs/mycollection1 -zkhost 127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381

删除以后,刚刚创建的collection 没有了,如图所示
win7 下搭建tomcat7+solr5.3.1+zookeeper3.4.6 单机版集群_第9张图片
Paste_Image.png
 3: 删除 所有 collection 
   java -classpath .;D:/solr/solr_home_1/server/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd clear /configs -zkhost 127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381

你可能感兴趣的:(win7 下搭建tomcat7+solr5.3.1+zookeeper3.4.6 单机版集群)