zookeeper基础搭建

来源:互联网 发布:蒙文软件下载手机软件 编辑:程序博客网 时间:2024/06/10 12:54

Apache ZooKeeper 是一个面向分布式应用程序的高性能协调服务器。它使用一个简单的接口暴露公共服务(比如命名和配置管理、同步和组服务),让用户不必从头开始编程。它为实现共识、组管理、领导者选举和到场协议(presence protocol)配备了现成的支持。

由于手头只有一台机器,所以使用docker进行虚拟化,产生4台虚拟机。原本是用于学习hadoop的,但是由于zookeeper机器数量应该为2n+1台,所以我们只使用了3台。下面开始搭建zookeeper集群。(个人觉得学习知识,在了解一些基础知识之后就开始上手学习还是比较不错的)

首先我们对机器进行一些基本的准备工作,比如java,ssh等。这里应该注意一个问题,今天在公司用公司电脑搭建的时候,启动时每台机器都提示正常启动,但是通过./zkSer.sh status查看机器启动状态时却提示可能没有启动。google一下发现出现这个问题有以下集中原因,在此做一个记录:

A: 由于我们设定的data目录不存在导致zookeeper启动时找不到相关的id文件

B:由于我们配置的集群环境还没能完全启动,导致的选主失败导致的问题

    C:这个是自己发现的,由于公司电脑都有java环境,所以也就没有留意,在启动时出现上述情况。最后通过./zkServer.sh start-foreground命令把启动日志打出来发现,原来是由于java版本的问题。(由于公司部分电脑支持的环境需要,部分主机保留java1.4版本)启动zookeeper的依赖包找不到导致错误。具体zookeeper依赖那些jar文件也可以到官网上面搜索一下。

首先下载zookeeper安装文件:http://www.apache.org/dyn/closer.cgi/zookeeper/

         下载完成之后解压上述文件到制定目录,例如: /home/×××/zookeeper  。为了存在我们所需要的配置文件,我们新建以下几个文件夹(在/home/***/zookeeper/文件夹下面)data,datalog,logs。然后我们对三台主机分别在data目录下新建myid文件,并在其中进行编号:1,2,3。这样做是为了我们能够进行zoo.cfg文件中的定位问题。

         完成之后我们进行zooker/conf/zoo.cfg文件的配置。首先将原始的zoo_sample.cfg文件重命名。配置文件如下:

# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.dataDir=/home/hadoop/zookeeper/datadataLogDir=/home/hadoop/zookeeper/datalog# the port at which the clients will connectclientPort=2181server.1=192.168.0.2:2888:3888    server.2=192.168.0.3:2888:3888    server.3=192.168.0.4:2888:3888    

参数详解:

initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.
syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms.
server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 由于配置的是伪集群模式, 所以各个server的B, C参数必须不同.

这样我们就完成了zookeeper的相关配置。通过启动zkServer.sh文件就可以启动zk,使用status参数可以查看zk的节点是leader还是follower。

0 0
原创粉丝点击