http://blog.csdn.net/xyls12345/article/details/27504965
solrCloud的搭建可以有两种方式:使用solr内嵌的jetty来搭建;使用外部web容器tomcat来搭建。对于使用jett来搭建参考solr官方的手册照着做肯定ok,下面我主要讲的是如何使用tomcat来搭建solrCloud。
废话不多说,开始我们的工作!
1.搭建tomcat单机版solr
见我的上一篇博文solr安装-tomcat单机版
2.安装配置zookeeper
具体下载,安装,配置不详细说了,很简单。只列出我的关键配置项,如下:
clientPort=4181
server.2=hadoop.datanode5.com:2888:9888
server.3=hadoop.datanode2.com:2888:9888
server.1=hadoop.datanode3.com:2888:9888
3. 配置solrCloud
(1)先配置主服务器tomcat 10.2.50.46
vim /usr/apache-tomcat-7.0.54/bin/catalina.sh 在图片所示位置加入以下代码
JAVA_OPTS="$JAVA_OPTS -Dbootstrap_confdir=/usr/solr/collection1/conf -Dcollection.configName=myconf -DzkHost=hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181"
注:其中DzkHost是用来指定zookeeper服务器的ip和端口。 confdir目录指定所有的索引库都从collection1索引库中同步字段
(2)配置从服务器tomcat 10.2.50.28 和10.2.50.52
vim /home/tomcat/bin/catalina.sh 在和上图同样的位置加入
JAVA_OPTS="-DzkHost=hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181"
(3)配置solr collection配置文件
/usr/solr/solr.xml:配置hostport为tomcat的服务端口;配置zkHhost。
<solr><solrcloud><strname="host">${host:}</str><intname="hostPort">8080</int><strname="hostContext">${hostContext:solr}</str><intname="zkClientTimeout">${zkClientTimeout:15000}</int><boolname="genericCoreNodeNames">${genericCoreNodeNames:true}</bool><strname="zkHost">hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181</str></solrcloud><shardHandlerFactoryname="shardHandlerFactory"class="HttpShardHandlerFactory"><intname="socketTimeout">${socketTimeout:0}</int><intname="connTimeout">${connTimeout:0}</int></shardHandlerFactory></solr>
/usr/solr/collection1/core.properties:删除该文件(这样集群启动后就没有collection)
/usr/solr/collection1/conf/solrconfig.xml:修改如下配置项:
<dataDir>${solr.data.dir:/data_solr/example-collection}</dataDir>
将所有的这些配置同步到各个节点上。
(3) 保存后依次启动tomcat,输入http://10.2.50.46:8080,看到如下界面说明成功
正常情况下,应该是没有collection和core的,我这里是自己创建了一个collection。
(4)创建collection,shard,core
有两种方式:一种是创建collection,自动分配shard和replica;另一种是创建collection,手动分配shard和replica。推荐后者,因为可控性强。
方式一:
curl
'http://localhost:7070/solr/admin/collections?action=CREATE&name=europe-collection&numShards=3&replicationFactor=3&maxShardsPerNode=3'
这样会出来一个collection,它有3个shard,每个shard有1个数据节点,2个备份节点,即该collection共有9个core
缺点:不灵活,不能选择适合的节点,不能选择数据存放路径,不能选择实例存放路径
方式二:
curl 'http://localhost:8080/solr/admin/cores?action=CREATE&name=cz_collection-shard1-replica1&instanceDir=/usr/solr/cz_collection-shard1-replica1&dataDir=/data_solr/cz_collection-shard1-replica1&collection=cz_collection&shard=shard1'
curl 'http://localhost:8080/solr/admin/cores?action=CREATE&name=cz_collection-shard1-replica2&instanceDir=/usr/solr/cz_collection-shard1-replica2&dataDir=/data_solr/cz_collection-shard1-replica2&collection=cz_collection&shard=shard1'
这样可以创建出一个collection,并自己指定该collection的shard和replica的所有配置项。还可以继续接着创建。
以上两种方式的具体api调用,请参看solr官方文档。
(5)集群运维
a.集群会发生变化的就是collection的配置,因此当collection的配置文件发生变化后就应该使用命令更新zookeeper中配置文件信息,solr很好提供了运维工具:
#collection配置
#将配置文件上传到ZooKeeper中
java -classpath .:/usr/solr/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181 -confdir /usr/solr/collection1/conf -confname myconf
#将上传到ZooKeeper中配置文件与Collection相关联
java -classpath .:/usr/solr/lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection cz_collection -confname myconf -zkhost hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181
b.对于collection,shard,core运维使用api接口即可,在此不说了。
ok,大功告成!抽时间自己也写个类似solrCloud的东西玩玩!
参考文章:
http://myjeeva.com/solrcloud-cluster-single-collection-deployment.html#deploying-solrcloud
http://wiki.apache.org/solr/SolrCloudTomcat
http://wiki.apache.org/solr/SolrTomcat
http://blog.csdn.net/woshiwanxin102213/article/details/18793271
相关推荐
Zookeeper作为协调服务,负责管理Solr集群的状态信息,确保在节点故障时能够自动恢复和重新分配工作负载。 在实际应用中,你需要根据业务需求和硬件资源来决定Tomcat和Solr实例的数量,以及Zookeeper集群的规模。...
本文将深入探讨如何在Tomcat服务器上整合SolrCloud6.2,构建一个高性能的Web搜索系统。 首先,我们需要理解SolrCloud的基本架构。SolrCloud通过ZooKeeper进行集群管理,ZooKeeper负责存储配置信息,协调节点间的...
在Solr集群中,Zookeeper用于管理集群状态,如节点的加入、离开和故障检测。 1. 下载Zookeeper最新稳定版。 2. 解压到指定目录,例如:/opt/zookeeper。 3. 修改conf/zoo.cfg配置文件,设置dataDir和clientPort。 4...
1. **Sharding**: Solr集群通过分片技术将大量数据分散到多个节点上,每个节点处理一部分数据,以提高查询性能和并发处理能力。 2. **Replication**: 为确保数据冗余和容错,Solr集群中的每个分片都有一个或多个副本...
【Solr 4.9.0 安装部署详解】 Apache Solr 是一款基于 Lucene 的开源搜索引擎,广泛用于企业级的数据检索、全文搜索和数据分析。本文将详细讲解如何在 Windows 7 64 位旗舰版上安装并部署 Solr 4.9.0 版本。 1. **...
Solr 是一个基于 Lucene 的全文检索服务器,用于构建企业级搜索应用。SolrCloud 是 Solr 的分布式版本,提供高可用性和数据分区,通过 ZooKeeper 进行集群管理和协调。以下是对 SolrCloud 安装和使用进行的详细说明...
Solr-Tomcat7 整合详解 在Java Web开发中,Apache Solr是一个非常流行的全文搜索引擎,它提供了高效、可扩展的搜索和分析功能。而Tomcat则是一款轻量级的应用服务器,常用于部署Java Servlet和JavaServer Pages...
本文详细介绍了如何在Tomcat服务器上部署SolrCloud,包括Zookeeper集群的搭建、Solr软件包的获取与配置、SolrCloud的部署流程等内容。这些步骤对于实际环境中部署和维护SolrCloud系统具有重要的参考价值。通过以上...
在部署和使用Solr时,了解Solr的生命周期管理、集群配置、备份与恢复策略,以及如何监控和调整性能都是至关重要的。熟悉这些知识点,可以帮助你更好地利用Apache Solr构建高性能的企业级搜索解决方案。
Solr+Tomcat项目整合是将Apache Solr搜索引擎与Apache Tomcat应用服务器结合使用的过程,以便在Web环境中部署和运行Solr服务。Solr是一个基于Lucene的全文搜索服务器,而Tomcat则是一个轻量级Java应用服务器,常用于...
【Solr集群安装部署】 Apache Solr 是一个流行的开源全文搜索引擎,它提供了高效、可扩展的搜索和分析功能。在企业级应用中,通常需要部署Solr集群来实现高可用性和数据分布,以处理大量的索引和查询请求。以下是...
- 配置ZooKeeper集群以支持Solr集群的高可用性和数据一致性。 - 每个Solr节点都需要指向同一个ZooKeeper集群实例。 - **Linux环境下的Solr集群**: - 类似于Windows环境下的部署方式,但在Linux环境下通常更推荐...
SolrCloud是Apache Lucene项目下的一个基于分布式搜索引擎,通过将多个Solr实例组合成一个集群,可以实现高可用性和高性能的搜索系统。Tomcat是Apache软件基金会的一个开源的Java Servlet容器,而Zookeeper是一个...
这些Node构成了Solr集群的基础。 理解这些核心概念对于正确部署和管理SolrCloud集群至关重要。 **1.2 SolrCloud的路由机制** SolrCloud提供两种主要的路由算法: - **Composite ID路由**:这是一种一致性哈希...
2. **创建Solr Web应用程序**:将Solr的`example\solr`目录复制到Tomcat的`webapps`目录下,重命名为`solr`,这样它会作为一个独立的Web应用被Tomcat管理。 3. **配置Solr核心**:在`solr\WEB-INF\solr.xml`中定义...
Solr集群是Apache Solr的一种分布式部署方式,它允许用户在多台服务器上分布数据,以提高搜索性能和可用性。在本场景中,我们主要关注如何在Linux环境下搭建一个基于Zookeeper的SolrCloud集群。 首先,我们需要准备...
此外,对于分布式Solr集群,这个定时工具可能还支持跨节点的协调,确保任务在整个集群中的同步执行。这在多节点环境下是非常必要的,因为它可以保证所有节点的索引状态保持一致,避免数据不一致的问题。 总的来说,...
下面我们将详细探讨 Solr 4.4.0 版本的主要特点、安装步骤以及如何将其部署到 Tomcat 上。 1. **Solr 4.4.0 主要特性**: - **查询优化**:4.4.0 版本引入了对查询性能的优化,包括更高效的查询解析器和查询执行...