solrCloud+tomcat+zookeeper配置


声明:本文转载自https://my.oschina.net/lvzi98/blog/1559894,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

solrCloud+tomcat+zookeeper配置

 

需要用到以下的软件:

solr-4.10.3  zookeeper-3.4.6.tar.gz  apache-tomcat-7.0.57

 

首先在/opt 目录下新建 solr_platform (mkdir solr_platform)

 

进入 solr_platform (zookeeper solr tomcat 都安装在该目录中)

 

一 zookeeper安装

  1 解压缩zookeeper ———— tar -zxvf zookeeper-3.4.6.tar.gz

  2 在solr_platform目录下新建zookeeper_data和zookeeper_log文件夹(如图1)所示

 

图1

  3 修改配置:每台机器都复制conf下的zoo_sample.cfg为zoo.cfg,并在zoo.cfg删除以前的配置,加现如下配置

  tickTime=2000

  initLimit=10

  syncLimit=5

  dataDir=/opt/solr_platform/zookeeper_data

  dataLogDir=/opt/solr_platform/zookeeper_log

  clientPort=2181

  server.1=ip1:2888:3888

  #server.2=ip2:2889:3889

  #server.3=ip3:2890:3890

  注:其中ip1、ip2为机器的ip,添加前请确保每台机器的2888和3888端口没有被占用。(有多台机器,server.2,server.3就是其他机器的zookeeper)

 

  4 并且在zookeeper_data文件夹下新建myid文件,里面写一个1(文件没有后缀名,第二台机子myid文件里面写2,第三台写3以此内推)如(图2)所示

图2

 

二 solr安装

 

 1 首先在solr_platform目录下新建solr_home_1文件夹

 2 解压缩solr-4.10.3文件,将solr-4.10.3/example/solr所有的东西复制到 solr_home_1

 3 新建一个data-config.xml文件,添加如下内容:

 <?xml version="1.0" encoding="utf-8"?>   

<dataConfig> 

 <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"   

   url="jdbc:mysql://192.168.7.154:3306/merchant"   

   user="wechatadmin"   

   password="portal!(!)cp"/> 

   <document> 

      <entity name="label" pk="id" query="select a.id as id,a.name as name from mer_label a">   

          <field column="id" name="id" />   

          <field column="name" name="name" />    

      </entity>

 </document>  

</dataConfig>

并将该文件放在/opt/solr_platform/solr_home_1/collection1/conf目录中 如(图3)所示

(图3)

 

4 修改/opt/solr_platform/solr_home_1/collection1/conf目录下的solrconfig.xml文件

将如下内容  如(图4) (图5)所示

  <lib dir="${solr.install.dir:../../..}/contrib/extraction/lib" regex=".*\.jar" />

  <lib dir="${solr.install.dir:../../..}/dist/" regex="solr-cell-\d.*\.jar" />

 

  <lib dir="${solr.install.dir:../../..}/contrib/clustering/lib/" regex=".*\.jar" />

  <lib dir="${solr.install.dir:../../..}/dist/" regex="solr-clustering-\d.*\.jar" />

 

  <lib dir="${solr.install.dir:../../..}/contrib/langid/lib/" regex=".*\.jar" />

  <lib dir="${solr.install.dir:../../..}/dist/" regex="solr-langid-\d.*\.jar" />

 

  <lib dir="${solr.install.dir:../../..}/contrib/velocity/lib" regex=".*\.jar" />

  <lib dir="${solr.install.dir:../../..}/dist/" regex="solr-velocity-\d.*\.jar" />

  替换为:

  <lib dir="../../contrib/extraction/lib" regex=".*\.jar" />

 

  <lib dir="../../contrib/clustering/lib/" regex=".*\.jar" />

 

  <lib dir="../../contrib/dataimporthandler/lib/" regex=".*\.jar" />

 

  <lib dir="../../contrib/langid/lib/" regex=".*\.jar" />

 

  <lib dir="../../contrib/velocity/lib" regex=".*\.jar" />

  <lib dir="../../dist/" regex=".*\.jar" />

图4

图5

  在 solrconfig.xml文件<requestHandler name="/select" class="solr.SearchHandler"> 这一行前添加

 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">   

 <lst name="defaults">   

  <str name="config">data-config.xml</str>   

 </lst>   

</requestHandler>

如(图6)所示

图6

 

5将解压缩的solr-4.10.3目录下的dist文件夹和contrib都拷贝到/opt/solr_platform/solr_home_1下 如(图7)所示

图7

 

三 solr web端安装

1解压tomcat7并其重命名为tomcat_1,将solr-4.10.3\dist目录下的solr-4.10.3.war文件解压到 /opt/solr_platform/tomcat_1/webapps下

注:要手动解压

 

2在/opt/solr_platform/tomcat_1/webapps/solr/WEB-INF目录下新建classes文件夹

复制solr-4.10.3\example\resources目录下的log4j.properties文件到 /opt/solr_platform/tomcat_1/webapps/classes下(图8所示)

图8

 

3复制solr-4.10.3\example\lib\ext下所有的jar文件到/opt/solr_platform/tomcat_1/webapps/solr/WEB-INF/lib目录下 (图9所示)

图9

4复制solr-4.10.3\dist下的solr-dataimporthandler-4.10.3.jar,solr-dataimporthandler-extras-4.10.3.jar到/opt/solr_platform/tomcat_1/webapps/solr/WEB-INF/lib目录下

(图10)所示

5添加一个mysql-connector-java-5.1.20-bin.jar到/opt/solr_platform/tomcat_1/webapps/solr/WEB-INF/lib目录下(图11)所示

图11

6将/opt/solr_platform/tomcat_1/webapps/solr/WEB-INF/web.xml文件

下的

    <env-entry>

       <env-entry-name>solr/home</env-entry-name>

       <env-entry-value>/put/your/solr/home/here</env-entry-value>

       <env-entry-type>java.lang.String</env-entry-type>

    </env-entry>

 改为:

    <env-entry> 

   <env-entry-name>solr/home</env-entry-name> 

   <env-entry-value>/opt/solr_platform/solr_home_1</env-entry-value> 

   <env-entry-type>java.lang.String</env-entry-type> 

</env-entry> 

如(图12,图13)所示

图12

图13

 

四 复制/opt/solr_platform/solr_home_1/下的collection1文件夹重命名为:mycore

(图14)所示

图14

1修改/opt/solr_platform/solr_home_1/mycore/conf下的data-config.xml为

<?xml version="1.0" encoding="utf-8"?>   

<dataConfig> 

 <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"   

   url="jdbc:mysql://192.168.7.154:3306/merchant"   

   user="wechatadmin"   

   password="portal!(!)cp"/> 

   <document> 

      <entity name="productname" query="select t.id,t.pro_name,t.label_name,CONVERT(t.audit_status,SIGNED) audit_status,CONVERT(t.publish_status,SIGNED) publish_status from mer_product t left join mer_black_user b  ON t.user_id = b.user_id WHERE b.ID IS  NULL AND t.audit_status IN (2, 4) AND t.publish_status = 1">   

          <field column="id" name="id" />   

          <field column="label_name" name="label_name" />   

             <field column="pro_name" name="pro_name" />

             <field column="publish_status" name="publish_status" />

             <field column="audit_status" name="audit_status" />

            

      </entity> 

 </document>  

</dataConfig> 

 

2在/opt/solr_platform/solr_home_1/mycore/conf下schema.xml文件添加

   <field name="pro_name" type="string" indexed="true" stored="true"/>

   <field name="label_name" type="string" indexed="true" stored="true"/> 

   <field name="publish_status" type="string" indexed="true" stored="true"/>

   <field name="audit_status" type="string" indexed="true" stored="true"/> 

 

3修改/opt/solr_platform/solr_home_1下的solr.xml文件

<solr>

    <cores adminPath="/admin/cores"  host="${host:}"  hostPort="${jetty.port:对应的tomcat端口号}" hostContext="${hostContext:solr}">

    <core name="collection1" instanceDir="collection1" />

      <core name="mycore" instanceDir="mycore" />

          <shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory">

      <str name="urlScheme">${urlScheme:}</str>

    </shardHandlerFactory>

  </cores>

</solr>

五tomcat配置信息

 1修改/opt/solr_platform/tomcat_1/bin下的catalina.sh文件

 添加配置

 JAVA_OPTS="-Dsolr.solr.home=/opt/solr_platform/solr_home_1 -Dbootstrap_conf=true -Dcollection.configName=myconftt  -DnumShards=2 -DzkHost=zookeeper机器ip:2181"

 -DzkHost指向的是zookeeper的址,-Dsolr.solr.home指向的是solr的配置信息,-DnumShards是几个碎片

 

六 将上面的tomcat整体复制一份重命名为tomcat_2,将solr_home_1整体复制一份重命名为solr_home_2

1 修改/opt/solr_platform/tomcat_2/bin下的catalina.sh文件

JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/opt/solr_platform/solr_home_2  -DzkHost=zookeeper机器ip:2181"

 

2 修改/opt/solr_platform/tomcat_2/webapps/solr/WEB-INF/web.xml文件

    <env-entry> 

   <env-entry-name>solr/home</env-entry-name> 

   <env-entry-value>/opt/solr_platform/solr_home_2</env-entry-value> 

   <env-entry-type>java.lang.String</env-entry-type> 

</env-entry>

 

七启动

启动时,先启动zookeeper,(bin/zkServer.sh start)

然后启动tomcat

注:ZooKeeper集群启动的时候,每个结点都试图去连接集群中的其它结点,先启动的肯定连不上后面还没启动的,所以上面日志前面部分的异常是可以忽略的。

 

 

 

 

 

本文发表于2017年11月03日 06:34
(c)注:本文转载自https://my.oschina.net/lvzi98/blog/1559894,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2276 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1