`

SolrCloud简介

    博客分类:
  • solr
 
阅读更多

一.简介

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)的逻辑图
index

Solr和索引对照图
solr-index

创建索引过程
create-index

分布式查询
search

Shard Splitting
shard-splitting

五.其它

NRT 近实时搜索Solr的建索引数据是要在提交时写入磁盘的,这是硬提交,确保即便是停电也不会丢失数据;为了提供更实时的检索能力,Solr设定了一种软提交方式。软提交(soft commit):仅把数据提交到内存,index可见,此时没有写入到磁盘索引文件中。

一个通常的用法是:每1-10分钟自动触发硬提交,每秒钟自动触发软提交。

RealTime Get 实时获取允许通过唯一键查找任何文档的最新版本数据,并且不需要重新打开searcher。这个主要用于把Solr作为NoSQL数据存储服务,而不仅仅是搜索引擎。Realtime Get当前依赖事务日志,默认是开启的。另外,即便是Soft Commit或者commitwithin,get也能得到真实数据。 注:commitwithin是一种数据提交特性,不是立刻,而是要求在一定时间内提交数据.

分享到:
评论

相关推荐

    分布式全文检索系统SolrCloud简介

    SolrCloud是一个基于Apache Lucene构建的分布式全文检索系统,主要在Solr 4.0版本之后引入,目的是为了提供一种高效、可扩展且具备容错能力的搜索解决方案。SolrCloud结合了Solr和Zookeeper的技术优势,使得索引和...

    56 solrCloud分布式搜索与索引过程

    #### 知识点一:SolrCloud简介 在深入了解SolrCloud的分布式搜索与索引过程之前,我们需要对SolrCloud有一个基本的认识。SolrCloud是Apache Solr的一个扩展模块,它提供了一种简单的方式来构建可扩展、高可用的全文...

    solrcloud与zookeeper

    #### 六、SolrCloud简介 SolrCloud是Apache Solr的一个分布式部署模式,旨在提高索引和搜索的可扩展性和高可用性。它利用Zookeeper作为集群管理工具,实现了以下功能: 1. **集群管理**:Zookeeper管理SolrCloud...

    solrcloud windows 环境搭建

    #### Zookeeper简介 Zookeeper是一款分布式的、开源的协调服务工具,主要用于解决分布式环境中常见的问题,如集群管理、配置文件集中管理等。它在Hadoop生态系统中的多个组件(例如HBase、Hive、Solr等)中扮演着...

    搭建Solr集群

    #### 一、SolrCloud简介 - **定义**:SolrCloud 是 Solr 提供的一种分布式搜索解决方案,适用于需要处理大规模数据集、支持高并发搜索请求以及实现容错机制的应用场景。 - **适用场景**:当单个索引的数据量较小且...

    Tomcat上部署SolrCloud.txt

    #### 一、SolrCloud与Tomcat简介 - **SolrCloud**:Apache Solr的一个分布式部署模式,主要用于处理大规模数据搜索和索引场景。它提供了高可用性和容错性,适用于生产环境中的大数据量处理。 - **Tomcat**:Apache ...

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

    #### 三、Zookeeper简介 Zookeeper 是一个分布式协调服务系统,用于管理分布式应用程序之间的状态和配置信息。在 SolrCloud 中,Zookeeper 起着非常关键的作用,它是集群配置信息的中心,负责管理 SolrCloud 集群的...

    集群搭建(zookeeper集群+solr集群)

    #### 二、Zookeeper简介与功能 ##### 2.1 Zookeeper是什么? **Zookeeper**是一个分布式协调服务,用于管理大型分布式系统中的配置信息、命名服务、分布式锁等功能。它是Hadoop项目下的一个子项目,广泛应用于...

    solr in action 完整版

    ### 知识点一:Solr简介 Solr是一个基于Apache Lucene的开源搜索平台,用于在网站上提供强大的搜索功能。它能够提供全文搜索、命中高亮显示、自动拼写修正、结果聚类等功能。Solr的灵活性使其能够处理各种类型的数据...

    solr集群安装手册

    #### 二、Zookeeper简介 - **概念:** - **定义:** Zookeeper 是一个分布式的、开源的协调服务框架,用于管理分布式环境下的服务配置信息、服务发现、分布式锁等功能。 - **作用:** 在 SolrCloud 中作为配置...

    Solr初体验

    一、Solr简介 1.1 Solr 架构 Solr 构建在分布式架构之上,支持集群部署,可以实现数据的横向扩展和高可用性。它由多个独立的 Solr 实例(称为 SolrCore)组成,每个实例可以独立处理搜索请求,并通过 SolrCloud ...

    solr教程+实例

    一、Solr简介 1.1 Solr的起源与发展:Solr最初由Yonik Seeley创建,后来成为Apache Lucene项目的一部分,发展至今已成为全球范围内广泛使用的搜索平台。 1.2 Solr的主要功能:Solr不仅提供全文索引,还支持多种数据...

    solr 的使用及安装

    一、Solr 简介 Solr 基于 Lucene 库,提供了一个高度可配置和可扩展的平台,用于处理和索引大量数据,支持多种数据源,如文件、数据库等。其主要特性包括: 1. **全文搜索**:Solr 可以对文本进行分词和索引,实现...

    最新版linux solr-7.7.3.tgz

    1. **Solr简介**: Solr 是一个企业级的搜索服务器,它支持多种数据源的索引,如文件、数据库等。通过使用Solr,开发者可以构建高度可定制的、高性能的搜索解决方案。Solr提供丰富的查询语言、排序选项、分面搜索、...

    solr-6.4.1 安装包.zip

    一、Solr简介 Solr的核心功能包括文档索引、搜索、排序、分词、高亮显示等,支持多种数据源,并且提供了RESTful API,易于与其他系统集成。Solr 6.4.1是2017年发布的一个稳定版本,带来了许多改进和新特性,如增强的...

Global site tag (gtag.js) - Google Analytics