Solr Cloud搭建
1:搭建tomcat
- 配置connector:
- server.xm文件中:
-
<Connector port="8080"
maxThreads="200" connectionTimeout="20000" acceptCount="400"
redirectPort="8443" minSpareThreads="10"
protocol="org.apache.coyote.http11.Http11NioProtocol"/>
- connector属性注释:
- maxThreads:最大线程数。
- acceptCount:请求入队列,队列的大小。当线程全部busy,queue满的时候,新请求将被抛弃。
- minSpareThreads:初始启动的线程数。
- maxSpareThreads:tomcat7版本中没有这个属性了,删除。
- 去掉Servlet Auto-Reloading:
-
server.xml 文件中
-
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false">
-
配置autoDeploy="false"。
-
- Disabling DNS Lookups
- server.xml 文件中
-
<Connector port="8080"
maxThreads="200" connectionTimeout="20000" acceptCount="400"
redirectPort="8443" enableLookups="false" minSpareThreads="10" maxSpareThreads="150"
protocol="org.apache.coyote.http11.Http11NioProtocol"/> - 配置autoDeploy="false"
- 修改jvm参数:
- 在$TOMCAT_HOME/bin目录下创建setenv.sh
- 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 "
- 修改tomcat的log的输出路径
- 修改conf/logging.properties
- 将${catalina.base}/logs 修改为存储log的路径
2:搭建zookeeper
3: solr搭建到tomcat中
- 添加JAVA_OPTS
- 在$TOMCAT_HOME/bin/setenv.sh中添加
- 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 " - 其他机器不需要配置:-Dcollection.configName,-DnumShards, -Dbootstrap_confdir。
- 修改solr的配置文件,solr.solr.home/solr.xml
-
<str name="host">${host:hbase-jrdata-01.pekdc1.jdfin.local}</str>
<int name="hostPort">${jetty.port:60030}</int>
-
- 修改HdfsDirectoryFactory 的属性,solrconfig.xml文件中:
- <str name="solr.hdfs.blockcache.global">${solr.hdfs.blockcache.global:true}</str>
- 使用blockcache.write容易出现bug,solr的log中warn信息中显示的。
- 修改solr的cache属性,solrconfig.xml文件中:
-
<filterCache class="solr.FastLRUCache"
size="50000"
initialSize="512"
autowarmCount="256"/> -
<queryResultCache class="solr.FastLRUCache"
size="50000"
initialSize="512"
autowarmCount="256"/> -
<documentCache class="solr.FastLRUCache"
size="50000"
initialSize="512"
autowarmCount="0"/>
-
- 修改tomcat的log问题:
- 将solr/example/lib/ext下所有的jar包拷贝到Tomcat Lib下。
- 配置/solr访问目录:
- TOMCAT/conf/Catalina/localhost/路径下,创建solr.xml文件如下:
-
<Context path="/solr" docBase="/soft/server/solr-4.10.0/dist/solr.war" debug="0" crossContext="true">
</Context>
- 配置solr的log输出:
- solr.war 装载后 在 webapps/下生成 solr的文件夹 ,把 log4j.properties 放到 WEB-INF/classes 中。没有 classes 创建一个。
log4j.properties在example/resources/路径下。 - 注意修改solr.log=logs/,指定log的输出地址。注意将CONSOLE去掉,有CONSOLE的话,tomcat的catalina.out也会输出一份solr的log,这样就重复输出日志了。
- solr.war 装载后 在 webapps/下生成 solr的文件夹 ,把 log4j.properties 放到 WEB-INF/classes 中。没有 classes 创建一个。