solr6.4.1使用zookeeper3.4.9分布式集群(第五篇)

本文讲的是如何使用zookeeper将solr分布式部署,也可以理解为tomcat分布式部署。

为什么要使用zookeeper,请参考文章《Solr的SolrCloud与Master-slave主从模式对比》http://blog.csdn.net/jiangchao858/article/details/53363310

尚未成功启动solr的,请看我的另一篇文章《solr6.4.1 搜索引擎(1)启动eclipse启动》http://www.cnblogs.com/zhuwenjoyce/p/6506359.html

solr尚未首次同步数据库的,请看我的另一篇文章《solr6.4.1搜索引擎(2)首次同步mysql数据库》http://www.cnblogs.com/zhuwenjoyce/p/6512378.html

软件安装准备

1,安装JDK1.8

2,下载zookeeper3.4.9

zookeeper官方版本下载地址: http://apache.fayea.com/zookeeper/

官方版本已经更新到zookeeper-3.5.2-alpha,但是是alpha内部测试版,所以我们下载一个稳定版本zookeeper-3.4.9就可以了

http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz (22M)

3,下载solr6.4.1地址:http://archive.apache.org/dist/lucene/solr/ (149M)

4,下载tomcat8.0.28

http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.28/bin/apache-tomcat-8.0.28.zip

一、solr集群准备

我在本机上模拟多台机器上的solr集群,所以是伪集群,新建目录如下:

D:\solr\solrCloud1 存放solr云的目录

D:\solr\solrCloud1\conf 存放solr云配置文件的目录,把D:\solr\solr-6.4.1\server\solr\configsets\sample_techproducts_configs\conf该目录下所有配置文件移动到该目录下

D:\solr\solrMachine1\ 代替原本需要真实集群的第一台机器目录

D:\solr\solrMachine2\ 代替原本需要真实集群的第二台机器目录

二、第一台机器集群准备

1)添加一个tomcat,端口号为9080,D:\solr\solrMachine1\apache-tomcat-8.0.28-9080

2)发布solr应用到该tomcat的webapp下,可以用war形式或者eclipse形式,可以参考我的文章《solr6.4.1 搜索引擎(1)启动eclipse启动》http://www.cnblogs.com/zhuwenjoyce/p/6506359.html

3)添加一个solrhome : D:\solr\solrMachine1\solrhome

4)修改D:\solr\solrMachine1\solrhome\solr.xml,把<int name="hostPort">${jetty.port:8983}</int>改为<int name="hostPort">${jetty.port:9080}</int>,因为solrhome的启动端口要与tomcat保持一致

5)修改tomcat的webapps目录下的solr应用的WEB-INF/web.xml(D:\solr\solrMachine1\apache-tomcat-8.0.28-9080\webapps\solr),solrhome的目录修改如下:

<env-entry>

<env-entry-name>solr/home</env-entry-name>

<env-entry-value>D:/solr/solrMachine1/solrhome</env-entry-value>

<env-entry-type>java.lang.String</env-entry-type>

</env-entry>

6)修改tomcat的D:\solr\solrMachine1\apache-tomcat-8.0.28-9080\bin\catalina.bat设置,使之可以被zookeeper识别,在setlocal之后换行添加如下内容:

set JAVA_OPTS=-Dbootstrap_confdir=D:/solr/solrCloud1/conf -Dcollection.configName=cloudconf -DzkHost=127.0.0.1:2181 -DnumShards=2

参数说明

-Dbootstrap_confdir 告诉zookeeper,solr云的配置文件存放目录在哪儿。PS: 主tomcat需要告诉zookeeper solr云的配置文件在哪儿

-Dcollection.configName 自定义一个config的名字

-DzkHost 告诉solr你的zookeeper部署在哪个IP上哪个端口

三、第二台机器集群准备

1)添加一个tomcat,端口号为9081,D:\solr\solrMachine2\apache-tomcat-8.0.28-9081

2)发布solr应用到该tomcat的webapp下,可以用war形式或者eclipse形式,可以参考我的文章《solr6.4.1 搜索引擎(1)启动eclipse启动》http://www.cnblogs.com/zhuwenjoyce/p/6506359.html。我在这里偷了个懒,当我的第一个solr应用在eclipse里成功发布到tomcat下之后,我就在eclipse里面复制了一个solr项目,命名为solr2。

3)添加一个solrhome : D:\solr\solrMachine2\solrhome

4)修改D:\solr\solrMachine2\solrhome\solr.xml,把<int name="hostPort">${jetty.port:8983}</int>改为<int name="hostPort">${jetty.port:9081}</int>,因为solrhome的启动端口要与tomcat保持一致

5)修改tomcat的webapps目录下的solr应用的WEB-INF/web.xml(D:\solr\solrMachine2\apache-tomcat-8.0.28-9081\webapps\solr2),solrhome的目录修改如下:

<env-entry>

<env-entry-name>solr/home</env-entry-name>

<env-entry-value>D:/solr/solrMachine2/solrhome</env-entry-value>

<env-entry-type>java.lang.String</env-entry-type>

</env-entry>

6)修改tomcat的D:\solr\solrMachine2\apache-tomcat-8.0.28-9081\bin\catalina.bat设置,使之可以被zookeeper识别,在setlocal之后换行添加如下内容:

set JAVA_OPTS=-DzkRun -DzkHost=localhost:2181

参数说明

-DzkRun 该参数将促使一个内嵌的 zookeeper 服务作为 Solr 服务的部分运行起来。

-DzkHost 告诉solr你的zookeeper部署在哪个IP上哪个端口

PS: 从tomcat不需要告诉zookeeper solr云的配置文件在哪儿,可以有多个tomcat都照此配置。

四、伪集群tomcat的准备工作

因为这里是伪集群,所以同时部署在同一个机器上的两个tomcat,端口必然不能重复:

D:\root\tomcat\apache-tomcat-8.0.28-9080 --端口9080,把8005和8009端口分别改为9001,9002

D:\root\tomcat\apache-tomcat-8.0.28-9081 --端口9081,把8005和8009端口分别改为9003,9004

到现在为止,我们已经使用-DzkHost=localhost:2181配置好了两个tomcat关联到zookeeper

五、zookeeper准备工作

下载后解压到目录D:/zookeeper-3.4.9

复制D:\zookeeper-3.4.9\conf\zoo_sample.cfg为zoo.cfg,修改zoo.cfg:

dataDir=D:/zookeeper-3.4.9/data --这里修改为实际的data数据目录

zookeeper的默认启动端口为2181

六、启动solr云

1)启动zookeeper3.4.9 D:\zookeeper-3.4.9\bin\zkServer.cmd

2)启动主tomcat D:\solr\solrMachine1\apache-tomcat-8.0.28-9080\bin\startup.bat

3)启动从tomcat D:\solr\solrMachine2\apache-tomcat-8.0.28-9081\bin\startup.bat

启动之后命令行窗口好多的打印!也不知道在打印个什么东西,第一次启动的时候我以为是solr应用在上传数据到zookeeper,因为我的solr索引已经达到110多万,后来我把索引数据清空了,还是有很多打印,不太明白为什么zookeeper在干什么。

七、访问solr云

在启动成功之后,随意访问任何一个tomcat,都可以查看到solr云已经成功显示,我这里访问的是http://localhost:9081/solr/index.html

点击Cloud菜单后,默认会进入Graph视图,该视图显示如下:

可以看到9080和9081两个分布式节点已经成功部署。

八、solr云失败频率高

不知道是本地内存不够还是zookeeper或者solr没有优化好,只要我点击Cloud菜单下的Tree或者Graph(Radial)子菜单,就一定会出现各种假死:

一个节点已经死了,另一个节点正在艰难恢复中。 ╯﹏╰

时间: 2024-10-21 00:49:26

solr6.4.1使用zookeeper3.4.9分布式集群(第五篇)的相关文章

ubuntu12.04+kafka2.9.2+zookeeper3.4.5的分布式集群安装和demo(java api)测试

博文作者:迦壹 博客地址:http://idoall.org/home.php?mod=space&uid=1&do=blog&id=547 转载声明:可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明,谢谢合作! --------------------------------------- 目录: 一.什么是kafka? 二.kafka的官方网站在哪里? 三.在哪里下载?需要哪些组件的支持? 四.如何安装? 五.FAQ 六.扩展阅读 一.什么是kafka? ka

(转)ZooKeeper伪分布式集群安装及使用

转自:http://blog.fens.me/hadoop-zookeeper-intro/ 前言 ZooKeeper是Hadoop家族的一款高性能的分布式协作的产品.在单机中,系统协作大都是进程级的操作.分布式系统中,服务协作都是跨服务器才能完成的.在ZooKeeper之前,我们对于协作服务大都使用消息中间件,随着分布式系统的普及,用消息中间件完成协作,会有大量的程序开发.ZooKeeper直接面向于分布式系统,可以减少我们自己的开发,帮助我们更好完成分布式系统的数据管理问题. 目录 zook

solr 集群(SolrCloud 分布式集群部署步骤)

SolrCloud 分布式集群部署步骤 安装软件包准备 apache-tomcat-7.0.54 jdk1.7 solr-4.8.1 zookeeper-3.4.5 注:以上软件都是基于 Linux 环境的 64位 软件,以上软件请到各自的官网下载. 服务器准备 为搭建这个集群,准备三台服务器,分别为 192.168.0.2 -- master 角色192.168.0.3 -- slave 角色192.168.0.4 -- slave 角色 搭建基础环境 安装 jdk1.7 - 这个大家都会安装

ZooKeeper伪分布式集群安装

获取ZooKeeper安装包 下载地址:http://apache.dataguru.cn/zookeeper 选择一个稳定版本进行下载,我这里下载的是zookeeper-3.4.6版本. ZooKeeper伪分布式集群安装 伪分布式集群:在一台Server中,启动多个ZooKeeper的实例. 上传并解压安装包 cd /usr rz -by tar xf zookeeper-3.4.6.tar.gz 创建实例配置文件 cd zookeeper-3.4.6/conf cp zoo_sample.

基于Hadoop的数据分析综合管理平台之Hadoop、HBase完全分布式集群搭建

能够将热爱的技术应用于实际生活生产中,是做技术人员向往和乐之不疲的事. 现将前期手里面的一个项目做一个大致的总结,与大家一起分享.交流.进步.项目现在正在线上运行,项目名--基于Hadoop的数据分析综合管理平台. 项目流程整体比较清晰,爬取数据(txt文本)-->数据清洗-->文本模型训练-->文本分类-->热点话题发现-->报表"实时"展示,使用到的技术也是当今互联网公司常用的技术:Hadoop.Mahout.HBase.Spring Data Had

Kakfa分布式集群搭建

本位以最新版本kafka_2.11-0.10.1.0版本讲述分布式kafka集群环境的搭建过程.服务器列表: 172.31.10.1 172.31.10.2 172.31.10.3 1.下载kafka安装包 登录kafka官网http://kafka.apache.org/, 单击左侧"Download"按钮 选择对应的版本,版本2.11代表scala版本(kafka是由scala编写的),0.10.1.0代表kafka的版本 在弹出的窗口中选择下载链接即可 2.下载zookeeper

solrCloud 4.9 分布式集群部署及注意事项

环境搭建 一.zookeeper 参考:http://blog.chinaunix.net/uid-25135004-id-4214399.html 现有4台机器 10.14.2.201 10.14.2.202 10.14.2.203 10.14.2.204 安装zookeeper集群 在所有机器上进行 1.下载安装包解压 tar xvf zookeeper-3.4.5.tar.gz -C /export/ cd /export/ ln -s zookeeper-3.4.5 zookeeper

Zookeeper实现分布式集群监控

Zookeeepr实现分布式集群监控 Zookeeper中节点有两种:临时节点和永久节点 从类型上看节点又可以分为四种节点类型:PERSIST,PERSIST_SEQUENTIAL,EPHEMERAL,EPHEMERAL_SEQUENTIAL 临时节点有一个特点:当创建临时节点的程序停掉之后,这个临时节点就会消失. 监视器的特点:可以给zk中的节点注册监视器,见识这个节点的变化情况. 监视器注册一次,只能使用一次,多次使用就要多次注册. 我们利用这个Zookeeper的临时节点特性+监视器(Wa

SolrCloud分布式集群部署步骤

http://www.mamicode.com/info-detail-892923.html Solr及SolrCloud简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果.   SolrCloud是Solr4.0版本以后基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zooke