一.简介
SolrCloud是Solr4.0版本以后基于Solr和Zookeeper的分布式搜索方案。SolrCloud是Solr的基于Zookeeper一种部署方式。Solr可以以多种方式部署,例如单机方式,多机Master-Slaver方式。
二.特色功能
SolrCloud有几个特色功能:
集中式的配置信息使用ZK进行集中配置。启动时可以指定把Solr的相关配置文件上传Zookeeper,多机器共用。这些ZK中的配置不会再拿到本地缓存,Solr直接读取ZK中的配置信息。配置文件的变动,所有机器都可以感知到。另外,Solr的一些任务也是通过ZK作为媒介发布的。目的是为了容错。接收到任务,但在执行任务时崩溃的机器,在重启后,或者集群选出候选者时,可以再次执行这个未完成的任务。
自动容错SolrCloud对索引分片,并对每个分片创建多个Replication。每个Replication都可以对外提供服务。一个Replication挂掉不会影响索引服务。更强大的是,它还能自动的在其它机器上帮你把失败机器上的索引Replication重建并投入使用。
近实时搜索立即推送式的replication(也支持慢推送)。可以在秒内检索到新加入索引。
查询时自动负载均衡SolrCloud索引的多个Replication可以分布在多台机器上,均衡查询压力。如果查询压力大,可以通过扩展机器,增加Replication来减缓。
自动分发的索引和索引分片发送文档到任何节点,它都会转发到正确节点。
事务日志事务日志确保更新无丢失,即使文档没有索引到磁盘。
其它值得一提的功能有:
索引存储在HDFS上索引的大小通常在G和几十G,上百G的很少,这样的功能或许很难实用。但是,如果你有上亿数据来建索引的话,也是可以考虑一下的。我觉得这个功能最大的好处或许就是和下面这个“通过MR批量创建索引”联合实用。
通过MR批量创建索引有了这个功能,你还担心创建索引慢吗?
强大的RESTful API通常你能想到的管理功能,都可以通过此API方式调用。这样写一些维护和管理脚本就方便多了。
优秀的管理界面主要信息一目了然;可以清晰的以图形化方式看到SolrCloud的部署分布;当然还有不可或缺的Debug功能。
三.概念
Collection:在SolrCloud集群中逻辑意义上的完整的索引。它常常被划分为一个或多个Shard,它们使用相同的Config Set。如果Shard数超过一个,它就是分布式索引,SolrCloud让你通过Collection名称引用它,而不需要关心分布式检索时需要使用的和Shard相关参数。
Config Set: Solr Core提供服务必须的一组配置文件。每个config set有一个名字。最小需要包括solrconfig.xml (SolrConfigXml)和schema.xml (SchemaXml),除此之外,依据这两个文件的配置内容,可能还需要包含其它文件。它存储在Zookeeper中。Config sets可以重新上传或者使用upconfig命令更新,使用Solr的启动参数bootstrap_confdir指定可以初始化或更新它。
Core: 也就是Solr Core,一个Solr中包含一个或者多个Solr Core,每个Solr Core可以独立提供索引和查询功能,每个Solr Core对应一个索引或者Collection的Shard,Solr Core的提出是为了增加管理灵活性和共用资源。在SolrCloud中有个不同点是它使用的配置是在Zookeeper中的,传统的Solr core的配置文件是在磁盘上的配置目录中。
Leader: 赢得选举的Shard replicas。每个Shard有多个Replicas,这几个Replicas需要选举来确定一个Leader。选举可以发生在任何时间,但是通常他们仅在某个Solr实例发生故障时才会触发。当索引documents时,SolrCloud会传递它们到此Shard对应的leader,leader再分发它们到全部Shard的replicas。
Replica: Shard的一个拷贝。每个Replica存在于Solr的一个Core中。一个命名为“test”的collection以numShards=1创建,并且指定replicationFactor设置为2,这会产生2个replicas,也就是对应会有2个Core,每个在不同的机器或者Solr实例。一个会被命名为test_shard1_replica1,另一个命名为test_shard1_replica2。它们中的一个会被选举为Leader。
Shard: Collection的逻辑分片。每个Shard被化成一个或者多个replicas,通过选举确定哪个是Leader。
Zookeeper: Zookeeper提供分布式锁功能,对SolrCloud是必须的。它处理Leader选举。Solr可以以内嵌的Zookeeper运行,但是建议用独立的,并且最好有3个以上的主机。
四.架构图
索引(collection)的逻辑图
Solr和索引对照图
创建索引过程
分布式查询
Shard Splitting
五.其它
NRT 近实时搜索Solr的建索引数据是要在提交时写入磁盘的,这是硬提交,确保即便是停电也不会丢失数据;为了提供更实时的检索能力,Solr设定了一种软提交方式。软提交(soft commit):仅把数据提交到内存,index可见,此时没有写入到磁盘索引文件中。
一个通常的用法是:每1-10分钟自动触发硬提交,每秒钟自动触发软提交。
RealTime Get 实时获取允许通过唯一键查找任何文档的最新版本数据,并且不需要重新打开searcher。这个主要用于把Solr作为NoSQL数据存储服务,而不仅仅是搜索引擎。Realtime Get当前依赖事务日志,默认是开启的。另外,即便是Soft Commit或者commitwithin,get也能得到真实数据。 注:commitwithin是一种数据提交特性,不是立刻,而是要求在一定时间内提交数据.
相关推荐
SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它是Solr版本4.0中的核心组件之一,它的主要思想是使用Zookeeper作为集群的配置信息中心。SolrCloud具有以下特色功能: 1. 集中式配置信息:SolrCloud通过...
### SolrCloud Windows环境下搭建详解 #### SolrCloud概述 SolrCloud是Apache Solr提供的一...通过上述详细介绍,读者应能够理解SolrCloud的工作原理及其实现过程,从而在实际项目中有效利用其强大的分布式搜索功能。
在系统设计中,首先简要介绍了HBase和SolrCloud的基本原理。然后,利用Python程序对HBase的Rowkey以及每一列数据进行索引,构建二级索引。这个过程将索引信息存储在HDFS上,使得SolrCloud可以在分布式环境中对HBase...
2. **Solr基础知识**:Solr的工作原理、索引构建、查询优化、分布式搜索能力以及SolrCloud的集群管理。 3. **HBase与Solr集成**:介绍如何配置和使用HBase作为Solr的数据源,实现数据的实时索引和检索,包括HBase的...
标题“lucene简单介绍及solr搭建使用”涉及了两个主要的开源搜索技术:Lucene和Solr。Lucene是Java开发的一个全文检索库,而Solr则是基于Lucene构建的企业级搜索平台,提供了更高级的功能和管理界面。 **Lucene简介...
- **功能介绍:** - 实时监控集群内各节点状态,自动处理节点加入或离开的情况。 - 根据当前集群状态动态调整资源分配策略。 - **实际案例:** - 分布式存储系统中,新节点加入时通过 Zookeeper 获取集群状态并...
1. Solr的工作原理:介绍Solr的架构和核心组件,包括如何使用索引来存储和检索数据,以及如何处理查询。 2. 配置和优化索引过程:讲解如何高效地构建索引,这包括字段类型选择、分析器配置、文档处理、以及如何避免...
#### 一、Hadoop概览与背景介绍 **1.1 何为Hadoop** - **定义**:Hadoop是一个由Apache基金会支持的开源软件框架,旨在通过集群中的普通商用硬件来处理大量数据集。 - **核心功能**:Hadoop能够根据用户自定义的...
5. **分布式搜索**:详述如何设置和管理SolrCloud,处理大规模数据和高可用性。 6. **监控与诊断**:介绍日志分析工具和监控指标,用于发现和解决性能瓶颈。 另一方面,"Solr In Action 2013"可能更全面地介绍了...
##### 推荐引擎工作原理 推荐引擎的工作机制包括正向和反向两个方向: - **正向推荐**:基于协同过滤等技术,综合多种推荐算法,如基于内容的推荐、基于用户的推荐等,以提高推荐的准确性和多样性。 - **反向推荐*...
下面将详细介绍Solr 5.5.2中的关键知识点。 一、Solr简介 Apache Solr是基于Lucene的搜索服务器,提供了高效、可扩展的全文检索、命中高亮、拼写检查、分类导航等功能。它支持RESTful API,易于集成到各种应用程序...
本书首先介绍了Solr的基本架构和工作原理,包括索引和查询过程,帮助读者理解Solr如何处理数据和响应用户查询。接着,详细讲解了安装和配置Solr的过程,包括单节点部署和分布式集群设置,让读者能够快速搭建起自己的...
首先,书中会涵盖Solr的基本概念,包括其核心组件和工作原理。Solr使用倒排索引技术进行高效的全文检索,通过分词器对输入文本进行分析,生成对应的索引。索引结构优化了搜索速度,使得用户能够快速获得相关结果。 ...
Solr的分布式特性使得它能够处理大规模的数据,通过SolrCloud可以实现集群化部署,提高系统的可用性和伸缩性。 在实践环节,本文设计并实现了基于Solr1.3的一个多库搜索引擎,该系统支持对多个数据源的搜索,具备...
以下将详细介绍搜索引擎中的数据存储问题及其相关解决方案。 一、搜索引擎的数据架构 搜索引擎的基本架构通常包括数据采集(Crawling)、数据预处理(Indexing)、查询处理(Query Processing)和结果展示(Result...
此外,了解SolrCloud模式对于大型分布式搜索环境来说尤其重要,它支持多节点集群,提供自动复制和故障转移功能。 Solr还支持多种插件,例如用于处理不同语言的分词器、用于分析文本的过滤器,以及自定义查询解析器...
5. **分布式搜索**:如果文档涉及,会介绍如何设置和管理SolrCloud,以及如何在多节点集群中分发索引和查询。 6. **性能优化**:可能涵盖内存设置,索引和查询的性能调优策略,以及日志分析等。 7. **监控和管理**...
综上所述,《Solr in Action 2013》是一本针对Solr搜索引擎的全面指南,从基础到高级应用,从核心原理到实际部署,为希望深入学习和应用Solr的读者提供了丰富的知识和指导。对于想要掌握企业级搜索技术的开发者、...