SolrCloud只是作为Solr的一个突出特性,这个特殊的特性能够实现分布式功能。利用这个功能,你能建立高效、容错的Solr服务器群。这对于访问量规模巨大的企业级应用来说,使用SolrCloud能实现高有效性、容错性、分布式索引和搜索功能。

1      了解SolrCloud

千呼万唤,始出来。期待已久,Solr4.1的版本终于发布了。Solr4包含的突出特性SolrCloud, 真的让人眼前一亮。下面,让就来探究一下SolrCloud。

1.1 了解SolrCores 与集合(Collections)

在一个简单的实例中,Solr有一些东西被称作一个SolrCore,其本质上视由于它就是一个单一的索引(Singlle Index)。当你想要多个索引(multiple indexes),你就不等不创建多个SolrCores。使用SolrCloud,一个简单的索引能够跨越多个Solr索引实例。我们称所有这些在逻辑上的索引(Index)的SolrCores为一个集合( A Collection),而一个集合( a collection)本质上是一个单一的索引,区别在于它能够跨越多个SolrCore‘s(Solr实例),而二者都是针对索引的缩放比例,也包括索引的冗余。比如说,你想将4个SolrCore的Solr移动到SolrCloud上去,你将会有4个集合(4 collections),而每一个集合是由多个独特的SolrCores组成。这就意味着,一个单一的索引(Single Index)能够由在不同机器上的多个SolrCores组成。

1.2 准备工作

下载最新的Solr稳定版本包(最新的是Solr 4.1,下载地址http://lucene.apache.org/solr/downloads.html)。为了便于演示,笔者采用实用cygwin (更多的信息,请参考http://cygwin.com/ )工具来执行脚本命令。

 

2 熟悉Solr Cloud

如果你对Solr还不太熟悉,建议先到Solr官网上查看一下具体的简单介绍(Simple Tutorial)。在对于Solr有一定了解后,删除Sample目录下的你测试产生的相关数据。这样能避免产生意外的错误,保证Demo能顺利进行。

对于分布式配置和协调,Solr嵌入和使用了Zookeeper(更详细的信息,请参考文档http://zookeeper.apache.org/)作为一个仓库--考虑到Zookepper能够包含所有Solr服务器的信息的分布式文件系统。

2.1 简单两个片集群(ShardCluster)

                                                                 

这个例子简单地创建了由两个Solr服务器组成的集群,Solr服务器实现了一个集合(A Collection)的两个不同片(shard).下面,展示了有关的实现步骤。

需要两台Solr服务器,可以复制一下已有example(下载的Solr4.2包,可以查看到这个目录)。进入解压后的目录后,在cygwin窗口执行命令。

cp -r example example01

下面这个命令将会启动Solr服务器以及启动一个新的Solr集群。

java -Djetty.port=8800 -Dbootstrap_confdir=./solr/collection1/conf

-Dcollection.configName=myconf-DzkRun -DnumShards=2 -jar start.jar

·        -DzkRun 触发嵌入在Solr服务器中的Zookeeper运行。

·        -Dbootstrap_confdir=./solr/collection1/conf 既然我们还没在Zookeeper中进行配置,这个参数引起本地的配置目录./solr/上传并且作为“myconfig”配置。这个名字“myconfig”是来自"collection.configName"得参数值。

·        -Dcollection.configName=myconf setsthe config to use for the new collection. Omitting this param will cause theconfig name to default to "configuration1". 设置新的集合(Collection)的配置去使用,忽略这个配置将会引起配置名默认为"configuration1"。

·        -DnumShards=2我们计划分离索引到几个逻辑分区,这个指定了对应数量。

·        -Djetty.port=8800设置Jetty服务器运行的端口,默认是8983。

浏览http://localhost:8800/solr/#/~cloud?view=rgraph,可以看到集群的状态。点击Tree,会发现我们的配置文件目录已经上传上去了,对应的config目录也生产了。

现在,然我们启动第二个Solr服务器。它将会自动地赋给shard2,原因是我们没有具体指定这个shard id值。

java-Djetty.port=7800 -DzkHost=localhost:9983 -jar start.jar

当我们指定-DzkHost=localhost:9800,是更具shard的Zookeeper的值来指定的。在没

有指定Zookeeper端口的情况,嵌入在Solr中的Zookeeper默认为Sorl端口+1000,所以这里的Zookeeper的端口应该是9800。

接下来,建立一些索引文件。为了匆忙地完成,我们才采用 CloudSolrServer实现。

    cd exampledocs

java-Durl=http://localhost:8800/solr/collection1/update -jar post.jar *.xml

在浏览器中输入:http://localhost:8800/solr/collection1/select?q=*:*&wt=xml,可以得到以下结果。

2.2 简单带有片重复(shard replicas)的两个片集群

这个例子将会通过复制shard1和shard2来构建先前的例子,额外的备份的shard被用做来实现高有效性和容错性,或是简单地提升分布式查询能力。

首先,保持先前的例子处于运行中。使用命令,复制这两个实例。

cp -r example01example01_replica

cp -r example02example02_replica

在每个彼此的窗口中开启这两个新的不同端口的服务器。

java -Djetty.port=8801-DzkHost=localhost:9800 -jar start.jar

java -Djetty.port=7801-DzkHost=localhost:9800 -jar start.jar


     浏览Zookeeper窗口http://localhost:8800/solr/#/~cloud,发现有效shard上图所示。此刻,窗口的查询日子和有关节点信息如下图。

你可以尝试去关闭一个节点,看看查询是否失效。一旦一个服务器中断了,发送请求将会发送到剩余启动的服务器。这时,你会继续看到整个一样的结果。如果我们停掉某个几点的所有服务器,这个请求对于这些服务器将会得到503错误。在shards中,返回仅仅这些存在于有效剩余有效shards的文档,添加跟随的查询参数便可以生效。

shards.tolerant=true

SolrCloud使用的是实施细节的领导(Leader)和监督者。这意味着,一些nodes/replicas能够扮演特殊的角色。你没有必要担心是否这个失效的服务器是领导者还是分布式的监督者—如果你碰巧是他们中的一个失效,他们自动透明地选择新的领导者或者新的监督者来回复使用者以及能无缝地负责他们各自的工作。任何Solr实例都能提升作为他们对于角色之一。

(Note:从Word文档中复制过来的,可以有些排版不太美观,请谅解。)

Solr云(SolrCloud)相关推荐

  1. 【solr】 - SolrCloud

    以SolrCloud模式启动 Unix或MacOS:bin/solr start -e cloud Windows:bin\solr.cmd start -e cloud 进入目录-启动[Linux仅 ...

  2. Solr搜索引擎 — SolrCloud安装和集群配置

    搞定了一切的一切之后下一步就是正式使用了,但是之前介绍的都是在单台服务器上进行的部署,如果在生产环境出现了单台故障怎么办呢?提供稳定性和性能的最直观的方式就是集群,solr官方提供了cloud的集群方 ...

  3. solrcloud 高可用集群搭建加solr整合hbase以及向ganglia报告度量

    一.环境准备 CentOS-6.4-x86_64-minimal.iso jdk-6u45-linux-i586-rpm.bin zookeeper-3.4.5.tar solr-4.6.0.zip ...

  4. solr集群(solrcloud)部署搭建

    `简介` SolrCloud 旨在提供一个高度可用.容错的环境,用于跨多个服务器分发索引内容和查询请求.它是基于 Solr 和Zookeeper的分布式搜索方案,它的主要思想是使用 Zookeeper ...

  5. java solr 实现_Java实现全文检索-Solr后台管理

    1.1. Solr后台管理 1.1.1. 管理界面 z.png 1.1.2. Dashboard 仪表盘,显示了该Solr实例开始启动运行的时间.版本.系统资源.jvm等信息. 1.1.3. Logg ...

  6. Solr集群搭建,zookeeper集群搭建,Solr分片管理,Solr集群下的DataImport,分词配置。...

    1   什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候 ...

  7. Solr集群搭建,zookeeper集群搭建,Solr分片管理,Solr集群下的DataImport,分词配置。

    1   什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候 ...

  8. solr后台界面介绍——(十一)

    1.加一个collection的方法 复制solr-home下的collection1,修改名字为collection2.并且修改collection2文件夹中配置文件core.properties中 ...

  9. solrCloud搭建

    一.什么是solrCloud? SolrCoud(solr云)是solr提供的分布式搜索方案.当一个系统搜索请求并发很高的时候,就需要使用solrCloud来满足这些需求 solrCloud是基于so ...

最新文章

  1. 只要一句话、一段文字,想让奥巴马说啥他就说啥
  2. 安装“ubuntu-8.04-server”(中)
  3. solve函数c语言_数值计算方法编程作业(C语言版)汇总
  4. 怎么查看计算机一共多少文档,不打开Word文档如何查看文章有几页 -电脑资料
  5. 2019牛客暑期多校训练营(第五场)F - maximum clique 1 (最大团:补图最大独立集)
  6. 【Python】安装配置Anaconda
  7. Qt工作笔记-Qt5中中文编码方面的笔记
  8. c语言message函数应用,调用input_message的参数太少在主函数中 是神马意思 大神们帮帮我...
  9. 更改了Composer DSN密码之后View Composer服务启动失败
  10. 深度学习计算机视觉的简介_商业用途计算机视觉简介
  11. win10pe命令打开计算机,手把手教你如何制作win10PE启动盘
  12. 我国南北居民收入差距 正在扩大。
  13. POI excel插入图表
  14. sql中如何添加数据
  15. i++与++i是什么意思?
  16. Python调用WPS进行文档转换PDF及PDF转图片
  17. ubuntu简繁体输入法快捷键转换
  18. Vscode中使用Git可视化面板管理代码仓库 - 视频教程
  19. python 处理Excel表格绘图方法
  20. xss的那些有卵用和没有卵用(一)

热门文章

  1. java生日提醒_生日提醒功能-SQL查询语句在Java中肿么运用?
  2. 【Proteus仿真】STC15单片机 + DS1302 + LCD1602显示时间
  3. 通过MATLAB 调用大量csv里的数据
  4. 【乡村振兴】“美在银林”乡村儿童系列公益活动启动暨郭伟新师生公益画展
  5. 【深度学习2】基于Pytorch的WGAN理论和代码解析
  6. 电脑桌面出现的同步空间如何删除?删除桌面百度网盘同步空间图标
  7. 五子棋透明棋盘界面设计(C语言)
  8. C语言整型数据(整数)
  9. html滚动条样式自定义,CSS自定义浏览器滚动条样式
  10. DBCO-PEG3-NHS ester,2163772-16-3,二苯并环辛炔-三聚乙二醇-琥珀酰亚胺酯