Windows下zookeeper的伪集群搭建

原创 2017年08月10日 13:25:20

    昨天快下班时突然收到boss的通知,让我学习一下zookeeper,说公司近期会有些分布式的项目工作。作为一只吃不饱穿不暖想买啥都买不起,工资一发就全都贡献给房租的实习生,怎敢不好好学?幸好boss还很人性化的给了我几篇博客让我学习,我激动地打开一看,好家伙,全是Linux系统的,可是明明让我在windows上用啊,于是便结合网上搜索到的博文,写下这篇语言较为通俗,用词较为不专业《Windows下zookeeper的伪群搭建》,可供大家查阅,更为了自己深化记忆、理清头绪。如有错误希望大家及时指出。

一、zookeeper是什么?

         看了百度前6页关于zookeeper的介绍,整合一下通俗解释一下:zookeeper的中文直译就是“动物园管理员”。动物园里有很多动物,打个比方有喜欢寒冷的企鹅啊北极熊啊,也有喜欢干燥炎热斑马啊非洲象啊,他们肯定是不能生活在同一个园区环境下的,为了动物们的健康,所以需要“动物园管理员”把他们分类进行管理。映射到项目中,系统越来越庞大、性能急剧下降,分布式系统是个绝佳的选择。而各个子系统就像动物园中的各种动物,为了使各个子系统正常为用户提供统一的服务,这时需要一种起到“管理员”功能的机制,这便就是现在广为使用的Zookeeper(动物园管理员)。

二、zookeeper的集群

    我们假设ZooKeeper集群当中一共有5台服务器,5台服务器连通在一起,客户端有分别连在不同的zookeeper服务器上。如果当数据通过客户端1,在第一台服务器上做了一次数据变更,他会把这个数据的变化同步到其他所有的服务器,同步结束之后,那么其他的客户端都会获得这个数据的变化。需要注意的是,集群中服务器的数量一定要是单数(2n+1,所以我们模拟集群的时候是模拟3台服务器)。

   大体了解之后,话不多说,直接进入搭建伪群的步骤。

三、Windows下的zookeeper伪群的搭建

   必备:jdk(建议使用1.7及其以上系统)

   zookeeper的运行需要我们在已经配好jdk环境的前提下,也就是环境变量里的path以及JAVA_HOME

1.下载

   zookeeper的下载  一般用3.4.8就可以了

2. 安装

   下载完成后直接解压就好。

3.开始正式搭建了!!

-3.1复制zkServer.cmd

   我们在进入bin文件夹,复制3份zkServer.cmd,分别命名为zkServer-1.cmd、zkServer-2.cmd、zkServer-3.cmd。

-3.2复制zoo.cfg

   返回到zookeeper解压后的根目录,进入conf文件夹,会看到一个zoo_sample.cfg的文件,这是zookeeper自带的模板配置,现在,我们把它复制三份,分别命名为zoo1.cfg、zoo2.cfg、zoo3.cfg。然后我们返回到上一步创建的zkServer-X.cmd中(X是1、2、3数字),以文本形式打开,添加一行这样的代码

set ZOOCFG=C:\zookeeper_workspace\zookeeper-3.4.8\conf\zoo1.cfg

这段代码“=”右侧便是你刚才创建的zooX.cfg的路径。一定要记得对应着修改,比如你Server-1.cmd里面,就改成zoo1.cfg的路径,依次对应。

-3.3修改zoo.cfg

以文本形式打开cfg,大家可以先把我的代码复制过去。 真正需要修改的只有dataDir的路径和clientPort以及Server里的ip地址

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zookeeper_workspace/log/1
clientPort=2181
server.1=172.18.126.135:2887:3887
server.2=172.18.126.135:2888:3888
server.3=172.18.126.135:2889:3889

    

    tickTime的这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
    initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒。
    syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime的时间长度,总的时间长度就是 2*2000=4 秒。
    dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。在此强调的是:注意是左斜杠/,而我们可能从地址栏复制过来的时候是右斜杠\,一定要修改过来!
    clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。每个zooX.cfg的该属性不同!
    server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

注意:

一定要修改dataDir的路径,使路径使存在的。我的dataDir路径目录如下图:



-3.4 添加myid文件(关键!!

许多Linux系统下zookeeper的博文无法再windows下正常运行就是因为在Windows下,我们需要这一步。

在上一步中dataDir路径中所对应的文件夹里,比如我这里就是C:\zookeeper_workspace\log下分别有名为1、2、3的文件夹,在

每个文件夹下新建一个myid文件,(记得!不要有拓展名!),每个myid文件里只写一个数字,1文件夹里就写1,2文件夹里就写2,3

文件夹里就写3。实际myid的值是zoo.cfg文件里定义的server.A项A的值。

4.运行!!
    以上任务都做好之后,我们就可以试着运行了。双击zkServer-1.cmd运行。
    如果闪退,没关系,我们打开zkServer-X.cmd的最后一行添加pause 就好,可以让屏幕不关闭,我们看一下报错。
    如果是这样的报错,就说明还是myid出的问题。
	等到确保myid无误之后。在此运行zkServer-1,此时你发现可能还是有错的,这是因为你的后两个服务器还没有启动,接着运行zkServer-2   (zkServer-1保持开启状态),你会发现日志中的报错少了很多,当你再运行zkServer-3,你会发现....没有报错了!!恭喜你!运行成功!!
--------------------------------------------------------------------------------------------------------------------------------------------------
    总体而言,zookeeper的伪群搭建就是这样。
参考:
http://blackproof.iteye.com/blog/2039040
http://blog.csdn.net/tswisdom/article/details/41522069
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

windows下zookeeper伪集群搭建

转载:http://www.cnblogs.com/tenghoo/p/windows_zookeeper_pseudo_cluster.html 下载 http://www.apache....

windows上单个zookeeper搭建伪集群

zookeeper 集群
  • fqf_520
  • fqf_520
  • 2016年10月25日 11:06
  • 268

Windows下zookeeper伪集群环境搭建

最近一直在关注集群与分布式的原理,难点在于服务的管理与协调, 现在应用最广的服务发现的方案就是Zookeeper,必须掌握。 集群与分布式的区别是集群提升的是可靠性,就是当部分的机器宕机不会导致服务...

windows下solrcloud+tomcat+zookeeper伪集群环境搭建

windows下solrcloud+tomcat+zookeeper伪集群环境搭建
  • hll814
  • hll814
  • 2016年05月12日 23:31
  • 1353

windows下solrcloud+jetty+内嵌zookeeper伪集群环境搭建

windows下solrcloud+jetty+内嵌zookeeper伪集群环境搭建~
  • hll814
  • hll814
  • 2016年05月12日 23:26
  • 1484

ZooKeeper实战【Windows集群环境搭建】

概述ZooKeeper是Hadoop的开源子项目(Google Chubby的开源实现),它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置管理、命名服务、分布式锁、集群管理等。本文主要讲...
  • WuLex
  • WuLex
  • 2017年07月25日 14:19
  • 263

zookeeper集群搭建(windows环境下)

本次zk测试部署版本为3.4.6版本,下载地址http://mirrors.cnnic.cn/apache/zookeeper/ 限于服务器个数有限本次测试了两种情况 1、单节点方式:部署在一台服...

ZooKeeper集群搭建 windows篇

ZooKeeper是一个分布式的,开源的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包...

windows下tomcat+solr+ZooKeeper集群搭建

上一篇文章已经讲述了如何在windows下用Tomcat容器下部署solr,现在讲解下solrcloud集群搭建 下载Zookeeper包zookeeper-3.4.6.tar.gz,官网都有下载:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows下zookeeper的伪集群搭建
举报原因:
原因补充:

(最多只允许输入30个字)