Solr Cloud 设计出来的目的是使你的搜索服务具有更高的可用性,提高容错、容灾能力。下面我们在一台电脑上建立2个solr服务,作为一个solrCloud分片(shard),初步认识一下solrCloud。SolrCloud使用zoo_keeper作为集群管理工具,本例中,我们使用solr发布包内嵌的zoo_keeper。

一、准备工作

建立一个solr_home目录,我建在D盘根目录,D:\solr_home。

把solr发布包中的contrib、dist文件夹全部复制到solr_home下面。

复制solr发布包中的example文件夹到solr_home,重命名为node1。

复制solr发布包中的example文件夹到solr_home,重命名为node2。

最终目录结构如下图:

二、启动服务

1、  启动node1节点

打开一个命令行窗口,进入D:\solr_home\node1目录,输入如下命令,回车便可以cloud模式启动node1:

[java] view
plain
copy

  1. java -DzkRun -DnumShards=2 -Dbootstrap_confdir=./solr/collection1/conf
  2. -Dcollection.configName=myconf -jar start.jar

参数说明:

-DzkRun:启动solr内嵌的ZooKeeper服务。这个服务将用来管理集群组态。注意,这个例子是在单台物理计算机上进行的实验;当你应用到生产环境的时候,就需要在整个架构中使用多个zooKeeper服务或者是个独立的ZooKeeper服务,而不是把solr内嵌的ZooKeeper用到你的生产环境。

-DnumShards:这个参数指明你打算把你的一个索引分成多少片。这个例子中,我们把它分成2片。注意,一旦你启动了集群,这个分片参数将不允许被改变。如果以后你需要更多的分片,那么现在你就多配几个(多个分片将能够在同一个服务上启动,以后可以迁移到不同的服务器上去)。

-Dbootstrap_confdir:ZooKeeper需要复制一份集群的配置文件,这个参数就是告诉ZooKeeper去哪里找该配置文件。

-Dcollection.configName:给保存到ZooKeeper下的配置文件取个名字,这个例子中我们命名为“myconf”,随便取,叫什么名字都行。

2、  启动node2节点

Node1启动了,只得到了我们定义的分片集的一半,把node2启动起来才是我们定义的一个完整的集群。新打开一个命令行窗口,进入D:\solr_home\node2目录,输入如下命令,回车,启动node2:

[java] view
plain
copy

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

参数说明:

-Djetty.port:设置这个参数的原因是我们在同一台计算机上运行服务,不能使用Jetty的默认端口了,默认端口已经被node1占了,随便选一个和默认端口不一样的端口。当在不同的计算机上启动的时候,也可以使用一样的端口。

-DzkHost:这个参数告诉solr去哪里找ZooKeeper服务,默认情况下,ZooKeeper服务工作在solr端口加1000的那个端口上。Solr默认端口是8983,那么ZooKeeper的服务端口就是9983.

三、查看结果

在浏览器里面输入:

http://localhost:8983/solr/#/~cloud

在左边菜单中有个Cloud,说明我们的solrCloud已经配置正确了。右图中我们看到shard1分片下面有刚刚配置的2个solr服务节点。


SolrCloud Hello Word的更多相关文章

  1. Solr In Action 笔记(4) 之 SolrCloud分布式索引基础

    Solr In Action 笔记(4) 之 SolrCloud Index 基础 SolrCloud Index流程研究了两天,还是没有完全搞懂,先简单记下基础的知识,过几天再写个深入点的.先补充上 ...

  2. A First Exploration Of SolrCloud

    A First Exploration Of SolrCloud Update: this article was published in August 2012, before the very ...

  3. Word/Excel 在线预览

    前言 近日项目中做到一个功能,需要上传附件后能够在线预览.之前也没做过这类似的,于是乎就查找了相关资料,.net实现Office文件预览大概有这几种方式: ① 使用Microsoft的Office组件 ...

  4. C#中5步完成word文档打印的方法

    在日常工作中,我们可能常常需要打印各种文件资料,比如word文档.对于编程员,应用程序中文档的打印是一项非常重要的功能,也一直是一个非常复杂的工作.特别是提到Web打印,这的确会很棘手.一般如果要想选 ...

  5. C# 给word文档添加水印

    和PDF一样,在word中,水印也分为图片水印和文本水印,给文档添加图片水印可以使文档变得更为美观,更具有吸引力.文本水印则可以保护文档,提醒别人该文档是受版权保护的,不能随意抄袭.前面我分享了如何给 ...

  6. 获取打开的Word文档

    using Word = Microsoft.Office.Interop.Word; int _getApplicationErrorCount=0; bool _isMsOffice = true ...

  7. How to accept Track changes in Microsoft Word 2010?

    "Track changes" is wonderful and remarkable tool of Microsoft Word 2010. The feature allow ...

  8. C#将Word转换成PDF方法总结(基于Office和WPS两种方案)

    有时候,我们需要在线上预览word文档,当然我们可以用NPOI抽出Word中的文字和表格,然后显示到网页上面,但是这样会丢失掉Word中原有的格式和图片.一个比较好的办法就是将word转换成pdf,然 ...

  9. 开源Word读写组件DocX 的深入研究和问题总结

    一. 前言 前两天看到了asxinyu大神的[原创]开源Word读写组件DocX介绍与入门,正好我也有类似的自动生成word文档得需求,于是便仔细的研究了这个DocX. 我也把它融入到我的项目当中并进 ...

随机推荐

  1. golang并发编程

    golang并发编程 引子 golang提供了goroutine快速实现并发编程,在实际环境中,如果goroutine中的代码要消耗大量资源时(CPU.内存.带宽等),我们就需要对程序限速,以防止go ...

  2. 一劳永逸让windows 64位操作系统 禁止强制驱动签名

    如何让WINDOWS7 64位直接加载“禁用强制驱动程序签名”方式启动  Windows Client 论坛 > Windows 7 问题 0 登录进行投票 因为开发需要,要装一台设备的驱动,但 ...

  3. python(进程池/线程池)

    进程池 import multiprocessing import time def do_calculation(data): print(multiprocessing.current_proce ...

  4. UVA 12230 - Crossing Rivers(概率)

    UVA 12230 - Crossing Rivers 题目链接 题意:给定几条河,每条河上有来回开的船,某一天出门,船位置随机,如今要求从A到B,所须要的期望时间 思路:每条河的期望,最坏就是船刚开 ...

  5. js中this的深入研究

    this对象是函数在运行时由调用函数的对象决定的: 1.在全局对象中运行函数时,this等于window 2.当函数被作为某个对象的方法调用时, this等于那个对象. 需要注意的几点: 声明函数里的 ...

  6. Java学习01

    Java学习01 第一章 1.JRE与JDK JDK(JAVA Develop Kit,JAVA开发工具包)提供了Java的开发环境和运行环境,主要用于开发JAVA程序,面向Java程序的开发者; J ...

  7. 关于Ubuntu远程ssh连接失败的问题

    在做机器人项目的时候,用的是Ubuntu的linux,跟之前的CentOS的操作命令有一点差别,就比如防火墙的名字,在Ubuntu系统中叫什么ufw,真是有点不好接受. 为了能模拟环境,我又弄了一台电 ...

  8. Node.js学习笔记1(简介)

            1.什么是Node.js?         Node.js,或者 Node,是一个可以让 JavaScript 运行在服务器端的平台.它可以让 JavaScript 脱离浏览器的束缚运 ...

  9. setTimeout和setInterval区别

    setTimeout和setInterval这两个函数, 大家肯定都不陌生, 但可能并不是每个用过这两个方法的同学, 都了解其内部的实质 甚至可能会错误的把两个实现定时调用的函数理解成了类似threa ...

  10. Python学习之路——模块

    一.模块: 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需 ...