Solr Cloud搭建

时间:2024-01-09 20:55:50

1:搭建tomcat

  1. 配置connector:
    1. server.xm文件中:
    2. <Connector port="8080"
      maxThreads="200" connectionTimeout="20000" acceptCount="400"
      redirectPort="8443" minSpareThreads="10" 
      protocol="org.apache.coyote.http11.Http11NioProtocol"/>

  2. connector属性注释:
    1. maxThreads:最大线程数。
    2. acceptCount:请求入队列,队列的大小。当线程全部busy,queue满的时候,新请求将被抛弃。
    3. minSpareThreads:初始启动的线程数。
    4. maxSpareThreads:tomcat7版本中没有这个属性了,删除。
  3. 去掉Servlet Auto-Reloading:
    1. server.xml 文件中

    2. <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false">

    3. 配置autoDeploy="false"。

  4. Disabling DNS Lookups
    1. server.xml 文件中
    2. <Connector port="8080"
      maxThreads="200" connectionTimeout="20000" acceptCount="400"
      redirectPort="8443" enableLookups="false" minSpareThreads="10" maxSpareThreads="150"
      protocol="org.apache.coyote.http11.Http11NioProtocol"/>

    3. 配置autoDeploy="false"
  5. 修改jvm参数:
    1. 在$TOMCAT_HOME/bin目录下创建setenv.sh
    2. JAVA_OPTS="-XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xms4g -Xmx4g -Xmn256m -XX:SurvivorRatio=6 -XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=68 -XX:+ExplicitGCInvokesConcurrent -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=10 -XX:+UseFastAccessorMethods -Xloggc:/export/grid/01/hadoop/gclog/rs-gc.log "
  6. 修改tomcat的log的输出路径
    1. 修改conf/logging.properties
    2. 将${catalina.base}/logs 修改为存储log的路径

2:搭建zookeeper

3: solr搭建到tomcat中

  1. 添加JAVA_OPTS
    1. 在$TOMCAT_HOME/bin/setenv.sh中添加
    2. JAVA_OPTS=$JAVA_OPTS" -Dcollection.configName=collection1 "
      JAVA_OPTS=$JAVA_OPTS" -DnumShards=1 "
      JAVA_OPTS=$JAVA_OPTS" -DzkHost=metadata-jrdata-03.pekdc1.jdfin.local:2182,metadata-jrdata-03.pekdc1.jdfin.local:2183,metadata-jrdata-03.pekdc1.jdfin.local:2184/solrcloud "
      JAVA_OPTS=$JAVA_OPTS" -Dbootstrap_confdir=/soft/server/solr-4.10.0/example/solr/collection1/conf "
      JAVA_OPTS=$JAVA_OPTS" -Dsolr.solr.home=/soft/server/solr-4.10.0/example/solr "
      JAVA_OPTS=$JAVA_OPTS" -Dsolr.hdfs.home=/solrcloud/collection1 "
      JAVA_OPTS=$JAVA_OPTS" -Dsolr.directoryFactory=HdfsDirectoryFactory "
      JAVA_OPTS=$JAVA_OPTS" -Dsolr.lock.type=hdfs "
      JAVA_OPTS=$JAVA_OPTS" -Dsolr.hdfs.confdir=/soft/conf/ "
      JAVA_OPTS=$JAVA_OPTS" -DzkClientTimeout=30000 "
    3. 其他机器不需要配置:-Dcollection.configName,-DnumShards, -Dbootstrap_confdir。
  2. 修改solr的配置文件,solr.solr.home/solr.xml
    1. <str name="host">${host:hbase-jrdata-01.pekdc1.jdfin.local}</str>
      <int name="hostPort">${jetty.port:60030}</int>

  3. 修改HdfsDirectoryFactory 的属性,solrconfig.xml文件中:
    1. <str name="solr.hdfs.blockcache.global">${solr.hdfs.blockcache.global:true}</str>
    2. 使用blockcache.write容易出现bug,solr的log中warn信息中显示的。
  4. 修改solr的cache属性,solrconfig.xml文件中:
    1. <filterCache class="solr.FastLRUCache"
      size="50000"
      initialSize="512"
      autowarmCount="256"/>

    2. <queryResultCache class="solr.FastLRUCache"
      size="50000"
      initialSize="512"
      autowarmCount="256"/>

    3. <documentCache class="solr.FastLRUCache"
      size="50000"
      initialSize="512"
      autowarmCount="0"/>

  5. 修改tomcat的log问题:
    1. 将solr/example/lib/ext下所有的jar包拷贝到Tomcat Lib下。
  6. 配置/solr访问目录:
    1. TOMCAT/conf/Catalina/localhost/路径下,创建solr.xml文件如下:
    2. <Context path="/solr" docBase="/soft/server/solr-4.10.0/dist/solr.war" debug="0" crossContext="true">
      </Context>

  7. 配置solr的log输出:
    1. solr.war 装载后 在 webapps/下生成 solr的文件夹 ,把 log4j.properties 放到 WEB-INF/classes 中。没有 classes 创建一个。
      log4j.properties在example/resources/路径下。
    2. 注意修改solr.log=logs/,指定log的输出地址。注意将CONSOLE去掉,有CONSOLE的话,tomcat的catalina.out也会输出一份solr的log,这样就重复输出日志了。