你好,游客 登录 注册 搜索
背景:
阅读新闻

solrCloud+Tomcat+Zookeeper集群配置

[日期:2016-03-04] 来源:Linux社区  作者:Linux [字体: ]

概述:

SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。

它有几个特色功能:

1)集中式的配置信息

2)自动容错

3)近实时搜索

4)查询时自动负载均衡

安装zookeeper

上面也说了 SolrCloud是基于Solr和Zookeeper的分布式搜索方案,所有要部署solrCloud+tomcat+zookeeper的集群,必须先安装zookeeper

安装环境:

Liux: CentOS release 6.4

JDK:1.7.0_55

因为我研究的是solr最新的版本,所以研究的是solr4.8.0然后solr4.8.0必须跑在jdk1.7以上的版本

1、zookeeper是个什么玩意?

答:顾名思义zookeeper就是动物园管理员,他是用来管Hadoop(大象)、Hive(蜜蜂)、pig(小猪)的管理员, Apache Hbase和 Apache Solr 的分布式集群都用到了zookeeper;Zookeeper:是一个分布式的、开源的程序协调服务,是hadoop项目下的一个子项目;

2、zookeeper伪集群安装

因为我演示的这套安装是单机版的安装,所以采用伪集群的方式进行安装,如果是真正的生成环境,将伪集群的ip改下就可以了,步骤是一样的,学会了伪集群安装,真正生产的多环境安装不会,那是不可能的一件事情。

第一步:下载最新的zooper软件:http://www.apache.org/dyn/closer.cgi/zookeeper/

Ubuntu 14.04安装分布式存储Sheepdog+ZooKeeper  http://www.linuxidc.com/Linux/2014-12/110352.htm

CentOS 6安装sheepdog 虚拟机分布式储存  http://www.linuxidc.com/Linux/2013-08/89109.htm

ZooKeeper集群配置 http://www.linuxidc.com/Linux/2013-06/86348.htm

使用ZooKeeper实现分布式共享锁 http://www.linuxidc.com/Linux/2013-06/85550.htm

分布式服务框架 ZooKeeper -- 管理分布式环境中的数据 http://www.linuxidc.com/Linux/2013-06/85549.htm

ZooKeeper集群环境搭建实践 http://www.linuxidc.com/Linux/2013-04/83562.htm

ZooKeeper服务器集群环境配置实测 http://www.linuxidc.com/Linux/2013-04/83559.htm

ZooKeeper集群安装 http://www.linuxidc.com/Linux/2012-10/72906.htm

Zookeeper3.4.6的安装 http://www.linuxidc.com/Linux/2015-05/117697.htm

第二步:为了测试真实我在我linux上面部署三个zookeeper服务

1.创建zookeeper的安装目录 

2.[root@localhost solrCloud]# mkdir /usr/solrcould

将下载的zookeeper-3.3.6.tar.gz复制到该目录下,同时在/usr/solrcould目录下新建三个文件夹:如下所示:

1.[root@localhost solrcoulud]# ls 

2.service1  service2  servive3  zookeeper-3.3.6.tar.gz

然后在每个文件夹里面解压一个zookeeper的下载包,并且还建了几个文件夹,总体结构如下:

1.[root@localhost service1]# ls 

2.data  datalog  logs  zookeeper-3.3.6

首先进入data目录,创建一个myid的文件,里面写入一个数字,比如我这个是server1,那么就写一个 1,server2对应myid文件就写入2,server3对应myid文件就写个3然后进入zookeeper/conf目录,如果是刚下过来,会有3个文件,configuration.xml, log4j.properties,zoo_sample.cfg,我们首先要做的就是在这个目录下创建一个zoo.cfg的配置文件,当然你可以把zoo_sample.cfg文件改成zoo.cfg,配置的内容如下所示:

service1 的zoo.cfg:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=5
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=2
# the directory where the snapshot is stored.
dataDir=/usr/solrcould/service1/data
dataLogDir=/usr/solrcould/service1/datalog
# the port at which the clients will connect
clientPort=2181
server.1=192.168.238.133:2888:3888
server.2=192.168.238.133:2889:3889
server.3=192.168.238.133:2890:3890

service2 的zoo.cfg:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=5
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=2
# the directory where the snapshot is stored.
dataDir=/usr/solrcould/service2/data
dataLogDir=/usr/solrcould/service2/datalog
# the port at which the clients will connect
clientPort=2182
server.1=192.168.238.133:2888:3888
server.2=192.168.238.133:2889:3889
server.3=192.168.238.133:2890:3890

service3 的zoo.cfg:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=5
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=2
# the directory where the snapshot is stored.
dataDir=/usr/solrcould/service3/data
dataLogDir=/usr/solrcould/service3/datalog
# the port at which the clients will connect
clientPort=2183
server.1=192.168.238.133:2888:3888
server.2=192.168.238.133:2889:3889
server.3=192.168.238.133:2890:3890

参数说明:

tickTime:zookeeper中使用的基本时间单位, 毫秒值.

initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower。 initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.

syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms.

dataDir: 数据存放目录. 可以是任意目录.但是我喜欢这么干

dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置

clientPort: 监听client连接的端口号.

server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 由于配置的是伪集群模式, 所以各个server的B, C参数必须不同.

配置说明:

需要注意的是clientPort这个端口如果你是在1台机器上部署多个server,那么每台机器都要不同的clientPort,比如我server1是2181,server2是2182,server3是2183,dataDir和dataLogDir也需要区分下。

最后几行唯一需要注意的地方就是 server.X 这个数字就是对应 data/myid中的数字。你在3个server的myid文件中分别写入了1,2,3,那么每个server中的zoo.cfg都配server.1,server.2,server.3就OK了。因为在同一台机器上,后面连着的2个端口3个server都不要一样,否则端口冲突,其中第一个端口用来集群成员的信息交换,第二个端口是在leader挂掉时专门用来进行选举leader所用。

到这里zookeeper的配置就这么配玩了,你没有看错,就是这么简单!

更多详情见请继续阅读下一页的精彩内容http://www.linuxidc.com/Linux/2016-03/128915p2.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款