美文网首页java 专题分享
win7 下搭建tomcat7+solr5.3.1+zookee

win7 下搭建tomcat7+solr5.3.1+zookee

作者: 烟雾袅绕 | 来源:发表于2016-07-08 16:24 被阅读555次

    在前一篇中,已经分享了 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行下新增)
         <env-entry>
           <env-entry-name>solr/home</env-entry-name>
           <env-entry-value>D:/solr/solr_home_1/home</env-entry-value>
           <env-entry-type>java.lang.String</env-entry-type>
        </env-entry>
    
    
    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 设置虚拟目录)
       <Context path="/solr" docBase="D:/solr/solr_home_1/server/solr"> 
       </Context>
    
    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行下新增)
         <env-entry>
           <env-entry-name>solr/home</env-entry-name>
           <env-entry-value>D:/solr/solr_home_2/home</env-entry-value>
           <env-entry-type>java.lang.String</env-entry-type>
        </env-entry>
    
    3:sorl_home_3 中的也同样修改一下
    
    
    4:修改 apache-tomcat-7.0.40 - 9092 和 apache-tomcat-7.0.40 - 9093 下的 server.xml (对应上面的第6步,增加Context 节点,)
    如:
    <!--apache-tomcat-7.0.40 - 9092-->
    <Context path="/solr" docBase="D:/solr/solr_home_2/server/solr"> 
    </Context>
    <!--apache-tomcat-7.0.40 - 9093-->
    <Context path="/solr" docBase="D:/solr/solr_home_3/server/solr"> 
    </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
    如下图:
    
    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 去启动;
    
    注意, 启动第一台的时候会有异常,不用去管,后面都启动后就好了,下面是第一台启动异常图:
    
    
    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"
    如下图:
    
    Paste_Image.png
    4:修改D:\solr\solr_home_1\home,D:\solr\solr_home_2\home,D:\solr\solr_home_3\home下的solr.xml 新增如下代码
    
       <solrcloud>
        <str name="host">${host:}</str>
    <!--设置成对应的tomcat 端口号-->
        <int name="hostPort">9091</int>
        <str name="hostContext">${hostContext:solr}</str>
    
        <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
    
        <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
        <int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
        <int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>
    
      </solrcloud>
    
      <shardHandlerFactory name="shardHandlerFactory"
        class="HttpShardHandlerFactory">
        <int name="socketTimeout">${socketTimeout:600000}</int>
        <int name="connTimeout">${connTimeout:60000}</int>
      </shardHandlerFactory>
    
    Paste_Image.png

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

    Paste_Image.png

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

    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 的命令。
    
    --成功以后 ,强刷页面, 会出现如图:
    
    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 没有了,如图所示
    
    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
    

    相关文章

      网友评论

      • 指缝de青春:目前发现的错误:two:第八步,应该是访问:localhost:9091/solr/index.html

      本文标题:win7 下搭建tomcat7+solr5.3.1+zookee

      本文链接:https://www.haomeiwen.com/subject/gczljttx.html