之前已经写了一篇solrCloud的搭建笔记了,最近又发现一种更好的方法,在记录一边,我使用的zk的版本是3.4.6,使用的solr的版本是5.5.3,请在apache的官网现在solr此版本的安装包,另外我使用的tomcat是8.x的版本,8之下的会报一个错。
1、搭建zk环境,我的zk的url是ip:2181,为了不和其他的配置混乱,我在zk中单独建立了一个节点,来存放solr的信息,solr中叫做chroot,我建立的solr的chroot叫做solr5,所以最终的连接zk的ulr为ip.2181/solr5。
2、上传配置文件:
找到你的solr的安装包,将安装包\server\solr-webapp\webapp\WEB-INF\lib\*这个路径放在你的classpath下面,然后执行下面的命令
java org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost ip:2181/solr5 -confdir 安装包\server\solr\configsets\basic_configs\conf -confname article
他表示将 安装包\server\solr\configsets\basic_configs\conf文件夹内的所有的文件都上传到zk上,给这个配置文件起名字为article,执行完这个命令之后就会发现在zk的solr5这个节点下就会多一个节点,叫做configs,它里面有个子节点叫做article,他代表我们创建的article配置文件,他的子节点就是我们上传的配置文件。
[zk: localhost:2181(CONNECTED) 106] ls /solr5/configs/article [currency.xml, protwords.txt, synonyms.txt, _rest_managed.json, solrconfig.xml, lang, stopwords.txt, managed-schema]
3、准备搭建solr
1、找到安装包/server/solr-webapp/webapp,将最后的webapp目录放到tomcat的webapps中,改名为solr,将server/lib/ext中的jar包放到solr在tomcat中的lib中,这些jar包是做日志用的,再在lib的同级目录创建一个classes目录,将server/resources/logging.properties复制到里面,这个是供log4j使用的。
2、修改web.xml,修改solr/home,将其改为你的地址,表示这个节点的solr创建的索引的工作地址。
3、在你的solrhome指定的文件夹中,放入solr.xml,这个文件在solr安装包的server/solr文件夹内可以发现。在这个文件中,添加一行,<str name="zkHost">ip:2181/solr5</str> 这个表示zk的url,将solr.xml的hostPort改为你的tomcat的port,比如我的是8080,则改为8080,最终solr.xml的内容为:
<solr> <!-- 加粗的为我修改过的 --> <solrcloud> <str name="host">${host:}</str> <int name="hostPort">${jetty.port:8080}</int> <!-- 注意这个,每个tomcat可能都不同,尤其是单机时!!!--> <str name="hostContext">${hostContext:solr}</str> <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool> <int name="zkClientTimeout">${zkClientTimeout:30000}</int> <int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int> <int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int> <str name="zkCredentialsProvider">${zkCredentialsProvider:org.apache.solr.common.cloud.DefaultZkCredentialsProvider}</str> <str name="zkACLProvider">${zkACLProvider:org.apache.solr.common.cloud.DefaultZkACLProvider}</str> <str name="zkHost">ip:2181/solr5</str> </solrcloud> <shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory"> <int name="socketTimeout">${socketTimeout:600000}</int> <int name="connTimeout">${connTimeout:60000}</int> </shardHandlerFactory> </solr>
启动你的服务器,注意如果你有多个服务器,比如多个tomcat,请保证他们的端口不冲突,建议你在做这些操作之前先启动tomcat的实验,即configtest.sh试验一下,保证端口不冲突在启动。这里假设你的tomcat正常启动。在启动一个tomcat之后,请到zk上看看solr5节点下的变化,在启动第一个之后会增加很多的节点,其中有一个很重要的就是live_nodes, ls /solr5/live_nodes就会发现它里面多一个子节点,表示我们刚刚启动的solr,他的名字就是我们启动的solr的ip:port_solr,如果果真出现的话你的tomcat启动成功了,solr已经和zk联系上了。然后每启动一个tomcat,都会发现会多个节点出现在live_nodes下面。还有别忘了每启动一个都到solr的管理页面访问下,solr5.5.3的首页和solr4的不同,添加了/admin.html,比如localhost:8080/solr/admin.html。
4、创建collection(我把它称作集合):
执行solr的api创建一个集合,我在试验时是使用了4个tomcat,所以我创建的集合的shard为4,并且每个shard有3个replica,我执行的命令是:
http://localhost:8080/solr/admin/collections?action=CREATE&name=article&numShards=4&replicationFactor=3&collection.configName=article&maxShardsPerNode=3
他的意思是,执行创建集合的指令(action=CREATE),创建集合的名字是article(name=article),他有四个shard(numShards=4),每个shard有三个replica(replicationFactor=3),这个集合使用的配置文件的名字是article(collection.configName=article),在每个solr中(也就是每个tomcat中的solr)最多可以出现3个shard(maxShardsPerNode=3,这个必须添加,默认是1个)。此时再到zk中查看一下集合的状态,在solr5中集合的状态实在每一个集合中,使用 get /solr5/collections/article/state.json,查看一下此集合的状态,最后选择一个solr看看它的管理页面的cloud。
就这么简单,solrCloud就搭建完成了!
相关推荐
基于SSM框架+mysql搭建的云笔记系统(仿有道云笔记)源码.zip基于SSM框架+mysql搭建的云笔记系统(仿有道云笔记)源码.zip基于SSM框架+mysql搭建的云笔记系统(仿有道云笔记)源码.zip基于SSM框架+mysql搭建的云笔记...
非常详细的linux上的hadoop集群搭建文档,可供参考,希望大家能够从中获益
基于SSM框架+mysql搭建的云笔记系统(仿有道云笔记)源码+项目说明.zip 基于SSM框架+mysql搭建的云笔记系统(仿有道云笔记)源码+项目说明.zip 基于SSM框架+mysql搭建的云笔记系统(仿有道云笔记)源码+项目说明.zip...
#ssm 搭建笔记.md
为知笔记开源项目程序源码,实现云笔记功能需要自己搭建服务器 为知笔记开源项目程序源码,实现云笔记功能需要自己搭建服务器 为知笔记开源项目程序源码,实现云笔记功能需要自己搭建服务器 为知笔记开源项目程序...
Haproxy高可用环境搭建笔记. x
### MyEclipse 搭建SSH框架笔记 #### 一、前言 SSH框架是指Struts、Spring和Hibernate这三个开源框架的集成应用。利用MyEclipse自带工具搭建SSH框架能够大大提高开发效率,使开发者能够专注于业务逻辑的实现,而...
"Obsidian+picGo+Lsky Pro搭建自己的私人笔记图床" Obsidian+picGo+Lsky Pro搭建自己的私人笔记图床是通过使用Lsky Pro容器化部署PicGo图床,Obsidian作为笔记客户端,实现私人笔记图床的解决方案。 知识点1:NAS...
Apache Kylin 环境搭建笔记 Apache Kylin 是一个基于分布式架构的企业级数据分析平台,由 Apache 软件基金会开发和维护。Kylin 环境搭建是一个复杂的过程,需要逐步配置和测试。本文将指导读者从头开始搭建 Apache ...
hadoop搭建集群笔记.虚拟机搭建hadoop集群
包含详细的hadoop搭建和环境笔记 有linux 有hdfs yarn service
本文将详细讲解如何搭建SVN服务器,并基于提供的"svn搭建笔记.zip"资源进行步骤指导。 首先,我们需要了解SVN的基本概念。SVN仓库是存储项目文件和版本历史的地方,客户端则用来与仓库交互,查看、更新、提交代码。...
Intel Media SDK 环境搭建笔记 Intel Media SDK 环境搭建笔记为客户端搭建 Intel Media SDK 环境在 VS2015 中的详细步骤,包括环境配置、软件下载、源码解压缩、库文件编译和错误解决等。 环境配置 本机环境为 ...
maven项目搭建 依赖、继承、聚合关系
SVN自动同步备份环境搭建笔记.pdf
【大数据相关搭建笔记.zip】这个压缩包集合了多个关于大数据平台搭建的重要文档,涉及的关键技术包括Hadoop(含Hive、HBase以及HA)、Spark、Sqoop、Flume以及Ambari。这些组件是大数据处理生态系统中的核心部分,...
SSM搭建笔记,新手需要的,无封页
云笔记小程序是一种基于微信小程序平台的应用,它提供了新建、查询和统计笔记的功能,旨在帮助开发者,特别是初学者,快速搭建自己的简易笔记应用。通过掌握这款源码,你可以深入了解小程序的开发流程,学习如何实现...
SVN自动同步备份环境搭建笔记[整理].pdf