`
zhanshenny
  • 浏览: 265591 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SolrCloud介绍

阅读更多

概念

SolrCloud(Solr云)是Solr4.0版本开发出的具有开创意义的基于Solr和Zookeeper的分布式搜索方案,SolrCloud是Solr的一种部署方式。Solr可以以多种方式部署,例如单机方式,多机Master-Slaver方式,这些方式部署的Solr不具有SolrCloud的特色功能。

Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库。Solr是以Lucene为基础实现的文本检索应用服务。

架构图 

 

从上图可知,该SolrCloud集群拥有4个Solr节点,索引分布在两个Shard里面,每个Shard包含两个Solr节点,一个是Leader节点,一个是Replica节点,此外集群中有一个负责维护集群状态信息的Overseer节点,它是一个总控制器。集群的所有状态信息都放在Zookeeper集群中统一维护。从图中还可以看到,任何一个节点都可以接收索引更新的请求,然后再将这个请求转发到文档所应该属于的那个Shard的Leader节点,Leader节点更新结束完成,最后将版本号和文档转发给同属于一个Shard的replicas节点。

SolrCloud的特点

1) 集中式的配置信息(Central Config)
    使用ZK进行集中配置。启动时可以指定把Solr的相关配置文件上传Zookeeper,多机器共用。这些ZK中的配置不会再拿到本地缓存,Solr直接读取ZK中的配置信息。配置文件的变动,所有机器都可以感知到。另外,Solr的一些任务也是通过ZK作为媒介发布的。目的是为了容错。接收到任务,但在执行任务时崩溃的机器,在重启后,或者集群选出候选者时,可以再次执行这个未完成的任务。
 
2) 自动容错 (Automatic Fail-Over)
    SolrCloud对索引分片,并对每个分片创建多个Replication。每个Replication都可以对外提供服务。一个Replication挂掉不会影响索引服务。更强大的是,它还能自动的在其它机器上帮你把失败机器上的索引Replication重建并投入使用。
 
3) 近实时搜索(Near-Realtime)
    立即推送式的replication(也支持慢推送)。可以在秒内检索到新加入索引。
 
4) 查询时自动负载均衡
    SolrCloud索引的多个Replication可以分布在多台机器上,均衡查询压力。如果查询压力大,可以通过扩展机器,增加Replication来减缓。
 
5) 自动分发的索引和索引分片
   发送文档到任何节点,它都会转发到正确节点。
 
6) 事务日志
   事务日志确保更新无丢失,即使文档没有索引到磁盘。

术语

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索引都是完整的。一方面起到备份作用,另一方便可以实现负载均衡和分布式搜索。每个Shard被化成一个或者多个replicas,通过选举确定哪个是Leader。
 
Zookeeper
      Zookeeper提供分布式锁功能,对SolrCloud是必须的。它处理Leader选举。Solr可以以内嵌的Zookeeper运行,但是建议用独立的,并且最好有3个以上的主机。 

索引的逻辑图

 

索引和Solr实体对照图

 


创建索引过程

检索过程

 


 

Shard Splitting

参考

http://tech.uc.cn/?p=2387 分布式全文检索系统SolrCloud简介

分享到:
评论

相关推荐

    solrcloud windows 环境搭建

    ### SolrCloud Windows环境下搭建详解 #### SolrCloud概述 SolrCloud是Apache Solr提供的一...通过上述详细介绍,读者应能够理解SolrCloud的工作原理及其实现过程,从而在实际项目中有效利用其强大的分布式搜索功能。

    solrCloud5.2.1 + tomcat7 + zookeeper3.4.6

    下面将详细介绍整个配置过程。 1. **软件环境配置** - **操作系统**: Windows 7 - **Tomcat**: 版本7.0.56,下载地址:http://tomcat.apache.org/download-70.cgi - **Zookeeper**: 版本3.4.6,下载地址:...

    SolrCloud使用教程及原理介绍

    SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它是Solr版本4.0中的核心组件之一,它的主要思想是使用Zookeeper作为集群的配置信息中心。SolrCloud具有以下特色功能: 1. 集中式配置信息:SolrCloud通过...

    Tomcat上部署SolrCloud.txt

    本文详细介绍了如何在Tomcat服务器上部署SolrCloud,包括Zookeeper集群的搭建、Solr软件包的获取与配置、SolrCloud的部署流程等内容。这些步骤对于实际环境中部署和维护SolrCloud系统具有重要的参考价值。通过以上...

    solrcloud部署文档.pdf

    本文档是介绍在centos7系统上部署solrcloud的过程,涉及的技术包括:部署zookeeper、使用solr默认的jetty服务器初始化solrcloud、使用zookeeper管理solrcloud配置文件、在linux系统上安装python3、通过python3操作...

    SolrCloud5.2.1+tomcat7+zookeeper3.4.6搭建教程.docx

    本教程主要介绍如何在Windows 7环境下搭建SolrCloud 5.2.1,使用Tomcat 7作为应用服务器,以及Zookeeper 3.4.6作为集群协调器。 首先,我们需要准备以下软件: 1. Apache Tomcat 7.0.56:这是一个开源的Servlet...

    solrcloud-zookeeper-kubernetes:在Kubernetes环境中运行Solrcloud和Zookeeper

    介绍 该项目旨在帮助在Kubernetes环境中尝试使用最新版本的SolrCloud(和Zookeeper)的开发人员和新手。 在这里,您将发现基本上两种不同的配置: 一个(或多个)Solr实例和一个Zookeeper配置为“独立”节点 一个...

    基于SolrCloud的分布式科技项目查重系统.pdf

    《基于SolrCloud的分布式科技项目查重系统》这篇文章主要探讨了如何...综上所述,这篇文章详细介绍了如何利用分布式技术和特定的文本相似度计算模型,构建一个高效、实时的科技项目查重系统,为科研管理提供有力支持。

    Solr集群部署傻瓜指南

    本指南将详细介绍如何进行Solr的单机部署和集群部署,帮助你轻松构建Solr环境。 ### 1. 单机 Solr 部署 #### 1.1 安装前提 在开始安装前,确保你已经安装了Java运行环境(JRE)和Java开发工具集(JDK),因为Solr...

    Solr介绍文档

    ### Solr介绍与SolrCloud特性详解 #### 一、Solr概述 Solr是一款基于Java的开源全文搜索引擎,它建立在Apache Lucene之上。Lucene本身是一个高性能、全功能的文本搜索引擎库,但并不提供完整的搜索应用服务。Solr...

    Solr集群搭建,Solr提供的分布式搜索方案

    这里以伪集群方式为例,介绍 SolrCloud 的基本搭建步骤: 1. **环境准备**:准备 CentOS 6.4、JDK 7、Tomcat 7.0.47、Zookeeper 3.4.6 和 Solr 4.10.3。 2. **Zookeeper 集群安装**: - 解压 Zookeeper 并复制三...

    solr搭建教程文档

    总结,本教程详细介绍了如何在Win7系统下搭建单机版的伪分布式SolrCloud环境,包括安装Tomcat、配置Solr Home、多实例运行、以及Zookeeper集群的配置。这个环境为后续的分布式搜索和索引提供了基础。需要注意的是,...

    1-7+HBase+for+Solr+介绍.zip

    2. **Solr基础知识**:Solr的工作原理、索引构建、查询优化、分布式搜索能力以及SolrCloud的集群管理。 3. **HBase与Solr集成**:介绍如何配置和使用HBase作为Solr的数据源,实现数据的实时索引和检索,包括HBase的...

    Solr In Action 原版

    《Solr In Action》原版书籍是一本专注于Solr搜索引擎实践操作的教材,其中详细介绍了Solr的安装、配置、管理以及与ZooKeeper和SolrCloud的集成。Solr是基于Lucene构建的一个开源搜索平台,它提供了搜索引擎所需的...

    lucene简单介绍及solr搭建使用

    标题“lucene简单介绍及solr搭建使用”涉及了两个主要的开源搜索技术:Lucene和Solr。Lucene是Java开发的一个全文检索库,而Solr则是基于Lucene构建的企业级搜索平台,提供了更高级的功能和管理界面。 **Lucene简介...

Global site tag (gtag.js) - Google Analytics