查看Solr4.0升级参考的源代码
←
Solr4.0升级参考
跳转到:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== 介绍 == 最近负责solr集群的升级,从solr 3.x的一个shard集群升级到solr 4.0的cloud集群。 == Why == Solr 4.0引入了SolrCloud功能,利用zookeeper做到全自动的分区、负载均衡,无需再人工做痛苦的shard切分,也不需要利用Haproxy或者Nginx做前端的负载均衡。这是我们升级的主要动力。Solr 4.0还有一个NRT,近实时搜索的特性也是我们比较关注的。 [[File:2shard4serverFull.jpg]] 整个升级主要参考[http://wiki.apache.org/solr/SolrCloud SolrCloud]这篇文档。 == 配置变更 == === schema.xml === schema.xml 必须加入_version_字段: <field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/> === solrconfig.xml === * indexDefaults和mainIndex合并成indexConfig * 加入 <luceneMatchVersion>LUCENE_CURRENT</luceneMatchVersion> 选择你使用的lucene版本号。 * 找到updateHandler,并加入updateLog,用于生成事务日志 <updateLog> <str name="dir">${solr.data.dir:}</str> </updateLog> * 原来用于复制的replicationHandler可以简化成: <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" /> * 添加/get handler: <requestHandler name="/get" class="solr.RealTimeGetHandler"> <lst name="defaults"> <str name="omitHeader">true</str> </lst> </requestHandler> * 如果没有添加admin handler,必须添加: <requestHandler name="/admin/" class="solr.admin.AdminHandlers" /> solr.xml保持默认: <cores adminPath="/admin/cores" * [http://wiki.apache.org/solr/DistributedUpdateProcessor DistributedUpdateProcessor]会自动添加到update链里,但是你也可以手动添加: <updateRequestProcessorChain name="sample"> <processor class="solr.LogUpdateProcessorFactory" /> <processor class="solr.DistributedUpdateProcessorFactory"/> <processor class="my.package.UpdateFactory"/> <processor class="solr.RunUpdateProcessorFactory" /> </updateRequestProcessorChain> * solr.DisMaxRequestHandler相关handler需要删除。 * solr.AnalysisRequestHandler相关handler需要删除。 == 启动 == 1. 在第一次创建cloud集群的时候,第一个节点的启动必须特殊处理,启动参数类似(以多个core为例): #Startup the first node. export BASE_DIR=. export JVM_ARGS="-Xmx16G -Xms16G" export ZK_SERVERS="localhost:2181" export ZK_TIMEOUT=20000 export SHARDS=2 java $JVM_ARGS -Dbootstrap_conf=true -DzkHost=$ZK_SERVERS -DzkClientTimeout=$ZK_TIMEOUT -DnumShards=$SHARDS -Dsolr.solr.home=$BASE_DIR -jar $BASE_DIR/start.jar 2>&1 >> $BASE_DIR/logs/solr.log & 重要参数说明如下: * bootstrap_conf If you pass -Dbootstrap_conf=true on startup, each SolrCore you have configured will have it's configuration files automatically uploaded and linked to the collection that SolrCore is part of * zkHost 用到zookeeper集群服务器列表,逗号隔开 * zkClientTimeout zookeeper client timeout * numShards 多少个分片,例如上面设置为两个分片 * solr.solr.home solr目录,该目录下需有solr.xml,设定core(现在称为collection)列表,例如: <solr sharedLib="lib" persistent="true"> <cores adminPath="/admin/cores" defaultCoreName="test1" host="${host:}" hostPort="${jetty.port:}" > <core default="true" instanceDir="test1" name="test1"></core> <core default="false" instanceDir="test2" name="test2"></core> </cores> </solr> 设定了两个collection: test1和test2,他们的配置分别在$solr.solr.home/test1和$solr.solr.home/test2目录下。 2. 当第一次创建集群的时候,第一个节点启动后会等待其他节点启动,因为要组成一个shard集群,必须至少有numShards个节点启动。 3. 其他节点启动无需传入-Dbootstrap_conf=true和-DnumShards: java $JVM_ARGS -DzkHost=$ZK_SERVERS -DzkClientTimeout=$ZK_TIMEOUT -Dsolr.solr.home=$BASE_DIR -jar $BASE_DIR/start.jar 2>&1 >>$BASE_DIR/logs/solr.log & 只需zookeeper相关参数就够了。
该页面使用的模板:
模板:版权声明
(
查看源代码
)
返回到
Solr4.0升级参考
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面