SolrCloud和MultiCore的区别

2019-03-27 01:20|来源: 网路

一、SolrCloud 与 MultiCore 的本质区别
SolrCloud 用多台机搭建一个SolrCore(即整个系统只有一套schema,solrconfig)
MultiCore 是多个独立的服务,不同的core可以用几套schema,solrconfig。

二、下面开始安装 SolrCloud (SolrCloud 是一个集群,真实环境下是需要多台机配合工作的,下面我以两台机子为例,一步一步来安装 SolrCloud)
现在我有两台机(没有配置 host,只能直接使用 IP地址):

ip1:202.38.221.64
ip2:202.38.221.50

SolrCloud 服务器是利用 zookeeper 服务器来实现分布式工作的,所以先要安装 zookeeper
下面查看 zookeeper 的官方文档,来介绍如何安装 zookeeper

2.1 安装 zookeeper

下面分 local 模式和 集群模式
下面根据官方文档(http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html#sc_RunningReplicatedZooKeeper) Getting Started 来部署 zookeeper,官方文档说,这里的目标主要是针对开发者
希望去尝试一下而写的,只介绍了单 Zookeeper 服务和一些简单的命令去确认它是否正常工作,最后为了方便开发者,还附带几部分复杂配置的内容用来说明集群复制部署,如果想要商业应用还需要看 ZooKeeper Administrator's Guide. 
    第一步:下载 Zookeeper (http://zookeeper.apache.org/releases.html) 我选择的是 3.3.5 版本
    第二步:
    1、如果是单机模式,非常简单,将下载好的文件解压,然后将主目录下面的 conf 目录下自带的 zoo_sample.cfg 改名为 zoo.cfg 然后点开将里面的 dataDir 设置成你想要的路径,注意在 linux 下可以使用绝对路径,但是在 windows 下最好使用相对路径,相对于 zoo.cfg文件,我没有使用相对路径报错了,说找不到 data 目录下的 myid 文件,也有可能windows 下面路径分隔符应该用/分割

    2、如果是集群模式也很简单,只要在zoo.cfg 加上如下配置信息:(记住有几台机就要加几行,单机模拟多台机要注意端口号和后面的选举端口号要区别开)
server.X=IP:2888:3888
然后把 X 加到dataDir目录下面的 myid 文件中,没有自行创建
记住那个ip,那个端口就对应那个X 这样把每天机子的服务打开 就完事了
还有以下命令,和操作文件目录差不多,可以以为 zookeeper 本身维护了一个文件系统,所以没难度,以后再研究怎么用 java 去操作它

下面重点研究怎么安装 solrcloud 服务

Solr及Tomcat安装配置

(1)下载solr4.2,把solr-4.2.1\example\solr\collection1\conf 目录下的配置文件上传的    zookeeper
(2)上传solr配置文件到zookeeper
[plain] view plaincopy
java -classpath .:/home/weibo/tomcat_solr_qq/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381 -confdir /home/weibo/solr-config -confname weiboconfig  
(3)把配置文件和目标collection联系起来
[plain] view plaincopy
java -classpath .:/home/weibo/tomcat_solr_qq/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection weibocollection -confname weiboconfig -zkhost 127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381  
(4)复制3个tomcat,在conf/Catalina/localhost创建solr.xml(如果目录不存在,请自行创建),内容如下
[plain] view plaincopy
<?xml version="1.0" encoding="utf-8"?>  
<Context docBase="/home/weibo/solr-qq/solr.war" debug="0" corssContext="false" >  
        <Environment name="solr/home" type="java.lang.String" value="/home/weibo/solr-qq/" override="true"/>  
</Context>  
crossContext不能设置为true,这里注意
(5)在你的solr home目录创建solr.xml
[plain] view plaincopy
<?xml version="1.0" encoding="UTF-8" ?>  
<solr persistent="true">  
  <cores adminPath="/admin/cores" zkClientTimeout="20000" hostPort="8080">  
  </cores>  
</solr>  
其他tomcat对应设置对应的端口号
(6)编辑tomcat bin/catalina.sh(windows下catalina.bat),加入
[plain] view plaincopy
JAVA_OPTS='-DzkHost=127.0.0.1:2181,127.0.0.1:2281,127.0.0.1:2381'  
这里就是solr和zookeeper交互的地方了
(7)依次启动tomcat,创建core及shard,访问solr

转自:http://my.oschina.net/u/1244232/blog/162686

相关问答

更多
  • 现在我们来剖析下这样一个简单的集群构建的基本流程: 先从第一台solr服务器说起: 1) 它首先启动一个嵌入式的Zookeeper服务器,作为集群状态信息的管理者, 2) 将自己这个节点注册到/node_states/目录下 3) 同时将自己注册到/live_nodes/目录下 4)创建/overseer_elect/leader,为后续Overseer节点的选举做准备,新建一个Overseer, 5) 更新/clusterstate.json目录下json格式的集群状态信息 6) 本机从Zookeeper ...
  • 1.搭建tomcat单机版solr 见我的上一篇博文solr安装-tomcat单机版 2.安装配置zookeeper 具体下载,安装,配置不详细说了,很简单。只列出我的关键配置项,如下: clientPort=4181 server.2=hadoop.datanode5.com:2888:9888 server.3=hadoop.datanode2.com:2888:9888 server.1=hadoop.datanode3.com:2888:9888 3. 配置solrCloud (1)先配置主服务器t ...
  • 5亿数据量,得考虑用solrcould分片了。使用solrcolud对索引分片,减小单个搜索实例的索引量来提高响应时间,当然使用replica可以提高并发效率。
  • SolrCloud 用多台机搭建一个SolrCore(即整个系统只有一套schema,solrconfig) MultiCore 是多个独立的服务,不同的core可以用几套schema,solrconfig。
  • 1)我假设通过多进程你的意思是将一个程序分成多个进程(通常使用POSIX系统中的fork()方法完成),而不是多任务处理。 多处理或多任务处理的通常定义是允许单个CPU通过非常频繁地在它们之间切换来运行看似并行的多个进程。 多核意味着单个CPU可以具有多个能够执行任务的核心,并且所有执行单元都以某种方式连接(取决于处理器的体系结构)。 除非您编写的是非常低级的软件,例如操作系统,否则这些事情通常对您的编程方式没有影响。 分叉过程(我相信你的意思)通常是通过操作系统提供的一些方法完成的,实际上是一个很大的主题 ...
  • 在SolrCloud中,您的每个Core都将成为Collection 。 每个Collection都有自己的一组配置文件和数据。 您可能会发现这个有用的移动多核SOLR实例到云 Solr 5.0(以后)对如何使用分片创建SolrCloud设置以及如何添加集合等进行了一些更改。 下面列出的所有内容都是我对Solr参考指南的理解。 我强烈建议彻底完成它。 https://cwiki.apache.org/confluence/display/solr/Apache+Solr+Reference+Guide 我在 ...
  • 通过编辑并行计算的“本地”配置,我解决了这个问题(使用2核心和4线程的核心i5): 转到Parallel->Manage Cluster Profiles 根据你的Matlab版本,你需要在更改任何东西之前Validate local配置文件。 点击edit并更改NumWorkers变量以适应您的需求。 然后你可以像这样开始matlabpool : matlabpool local 注意我从来没有使用parfor加速。 Matlab的开销总是超过了好处。 我所说的是:先测试你的代码,然后决定是否使用par ...
  • 最好的方法应该是将solr云升级到版本6.2.1。 如果节点是32位拱,它还取决于节点架构。 那么如果节点是64位arch,那么堆大小超过2gb就不会工作,你可以分配更多的堆大小但是会产生gc开销错误。 所以最好更新solr并添加更多分片和副本以避免错误。 The best approach should be to upgrade the solr cloud to version 6.2.1. it also depends on the node architecture if the node is ...
  • 云功能是Solr的一部分。 对于生产,您需要将ZooKeeper作为单独的应用程序(它也可以作为Solr的一部分运行,但不建议在生产中执行此操作) https://cwiki.apache.org/confluence/display/solr/SolrCloud Cloud features are a part of Solr. For production you would need to have ZooKeeper as separate application (it's can be run ...