solr5.3伪分布式集群的搭建
来源:互联网 发布:中世纪2优化9挪威 编辑:程序博客网 时间:2024/06/11 18:46
solr5.3伪分布式集群的搭建
solr4.x的版本网上已经有很多例子,不过5.3伪分布式集群的搭建还是略有不同,这里主要记录一下5.3版本伪分布式的搭建
solr的配置文件的管理是通过zookeeper集群进行管理的,而且solr也对zk进行了api的封装,主要是org.apache.solr.cloud.ZkCLI类提供了配置文件的上传,闲话少说,先进行zk伪分布式集群的搭建
zk伪分布式搭建
- 创建data目录用于存放zk集群的数据
- 创建伪分布式集群的配置文件
- 分别启动各个节点
- 查看集群的状态
为了充分体现zk的选举机制,我们选择使用奇数个节点进行,在此处选择三个节点,端口选择为
server.1=localhost:2888:3888 对外提供服务的端口为2181
server.2=localhost:2889:3889 对外提供服务的端口为2182
server.3=localhost:2890:3890 对外提供服务的端口为2183
整个配置文件类似
tickTime指的是心跳包的发送时间,每隔tickTime就会发送一次心跳包检测集群的状态
initLimit指的是集群中leader和follower在初始化的时候所能承受的最大心跳数
sysncLimit指的是集群中leader和follower之间请求和应答之间能承受的最大心跳数
这里最大心跳数就是tickTime的数量
dataDir指定为创建的数据文件夹
zk2.cfg和zk3.cfg与zk1.cfg类似,唯一不同就是指定clientPort和dataDir即可
在zk1的dataDir中需要放置一个myid的文件,文件内容为1
echo 1 > myid
myid相当于一个身份认证的内容,需要用来表示出集群中的本节点的身份,如果缺失会导致服务无法正常运行的问题,同理zk2和zk3的myid依次为2和3
然后依次启动三个节点
/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zk1.cfg
这里两个参数,第一个为功能性参数,start stop status
第二个参数指定配置文件所在路径
我们可以通过status查看启动状态
到这里zk伪分布式就已经配置完成
solr配置
- solrhome配置
- webapp配置
- jar包拷贝
- 关联solr_home和tomcat
- 关联tomcat和zookeeper
solrhome配置
由于选择solr集群是选择三个节点,所以需要创建三个solr_home用于存放data,solr默认使用的servlet引擎是jetty,由于我对jetty没有对tomcat那么熟,所以这里使用的是tomcat作为默认的运行容器
需要从tomcat的官网下载tar.gz版,解压,并复制两份以便提供三个节点
,目录结构如图所示
其中solr_home内容为solr-5.3.1/server/solr中的内容
solr_home_1
这里面有些是我已经创建的节点内容
下面是tomcat的配置
我们需要从solr的解压文件中拷贝一个solr-webapp的站点,放置到tomcat的webapps下
具体路径在我这里为:/opt/solr-5.3.1/server/solr-webapp/webapp,名字改成solr,由于后面有些设置依赖于此处应用的名字,虽然改成其他的也能运行,但后面有些点击会出现异常,需要通过绝对路径访问,不易操作,所以在这建议使用solr作为应用的名字
jar包配置
拷贝/solr-5.3.1/server/lib/ext中的全部jar包到tomcat的webapps下solr应用的WEB-INF中的lib中
在我的机子上的路径为:
/opt/solrCloud/tomcat_server_1/webapps/solr/WEB-INF/lib
同时依赖于log4j的配置,同样拷贝server下的resources下的log4j.properties到WEB-INF下
在我的机子上的路径为:
/opt/solr-5.3.1/server/resources/log4j.properties
关联tomcat和solr_home
这里关联solr_home主要是在tomcat中指定solr_home,具体为修改tomcat_server_1/webapps/solr/WEB-INF/web.xml文件
由于在一台机子上启动三个tomcat,所以需要进行端口绑定的修改,具体为修改tomcat下的conf目录下的server.xml文件Tomcat Admin Port、Http/1.1Port、AJP/1.3Port
端口为:
此处给出tomcat_server_2的配置截图
关联tomcat和zookeeper
我们需要用zk管理solr的配置文件,所以需要将tomcat的启动参数中指定zk的host,具体为修改tomcat/bin下的catalina.sh:
加入 JAVA_OPTS=”-DzkHost=127.0.0.1:2181”
到了这里我们配置的就差不多了,下面启动3个tomcat
上传solr配置文件到zookeeper
solr对于collection的配置中最重要的就是schema.xml文件用于定义存储的数据结构,类似于sql中的字段定义,配置模版在/server/solr/configsets/basic_configs/conf
在我的机器上的路径为:
/opt/solr-5.3.1/server/solr/configsets/basic_configs/conf
我们需要将该配置文件根据自己的需求定制成自己的数据结构,在此处为了演示我就直接上传到zk上了,关于上传zk ,solr有做api的封装,具体为org.apache.solr.cloud.ZkCLI 类,所以执行以下命令:
java -classpath .:/opt/solrCloud/tomcat_server_1/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 192.168.203.183:2181 -confdir /opt/solr-5.3.1/server/solr/configsets/basic_configs/conf -confname task
其中-classpath用于指定编译的jar包,-cmd用于指定命令类型为上传,下载则是downconfig,-zkhost则指定zk服务器的host,-confdir则指定上传的是文件夹,并且写入在操作系统中的路径,-confname则指定上传到zk的名字,上传的配置文件会存放到zk的/configs/下
然后我们通过url创建节点
命令为:
http://ucap:8080/solr/admin/collections?action=CREATE&name=task&numShards=3&collection.configName=task
其中ucap:8080则是tomcat的地址
其中我们指定应用为solr,具体action为CREATE,numShards则指定节点数,configName则指定在zookeeper中配置文件的名字
大功告成
我们可以查看一下集群的信息
其中在编写的过程中有参考百度经验
http://jingyan.baidu.com/article/d8072ac4625b07ec95cefdbe.html和
http://blog.csdn.net/wanghui2008123/article/details/37813525这两篇文章
- solr5.3伪分布式集群的搭建
- 搭建伪分布式集群
- Hadoop伪分布式集群的搭建
- hadoop 伪分布式集群的搭建
- 搭建伪分布式Hadoop集群
- hadoop集群搭建【伪分布式】
- 搭建Hadoop伪分布式集群
- redis 伪分布式集群搭建
- 搭建伪分布式hadoop集群
- Hadoop伪分布式集群搭建
- zookeeper伪分布式集群搭建
- Hadoop集群伪分布式搭建
- 搭建伪分布式hadoop集群
- hadoop伪分布式集群搭建
- Hadoop伪分布式集群搭建
- Docker-hadoop的伪分布式和集群的搭建
- Hadoop伪分布式或集群系统的搭建
- hadoop伪分布式集群搭建遇到的问题
- 去掉"为了有利于保护安全性,Internet Explorer 已限制此网页运行可以访问计算机的脚本或ActiveX控件"的提示
- Flex之接受拖放外部文件
- SpringMVC+Spring+Hibernate基于annotation无法实例化HibernateTamplete
- Java面向对象之修饰符、封装、继承、多态详解
- 一行代码玩转android数据库之增删改查,超级简单 第三方框架xUtils改写 简单实用
- solr5.3伪分布式集群的搭建
- IOS学习之NSUserDefaults的一些用法
- 静态方法和实例化方法的区别,很透彻
- win自动删除exe文件的解决办法
- cisco ssh解析(使用java)
- Eclipse复制多行方法
- NSString的内存分配及管理
- phonegap/cordova开发中的分享功能
- 通过调用Java外部库来读取json文件