zookeeper基础搭建

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 tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/home/hadoop/zookeeper/data
dataLogDir=/home/hadoop/zookeeper/datalog
# the port at which the clients will connect
clientPort=2181
server.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值