zookeeper分布式安装

来源:互联网 发布:mac输入法切换设置 编辑:程序博客网 时间:2024/06/04 19:17

一、选举机制(FastLeaderElection算法):sid最大且被超过集群中超过半数的机器拥护就会成为leader.

所以只有两种情况无法选出leader:

  1. 整个集群只有2台服务器(注意不是只剩2台,而是集群的总节点数为2)

  2. 整个集群超过半数机器挂掉。

 所谓的偶数问题其实是另一个集群优化配置问题,即:集群的容灾数量=集群总节点数/2-1

假如集群有5节点,那么最多允许2个节点挂掉,如果有3节点挂了,那么整个集群的选举结果不会满足条件:集群中超过半数的机器拥护。

假如集群有6个节点,那么最多也只能挂掉2台,因为挂了3台时,选举结果也不会满足条件:集群中超过半数的机器拥护。

结果可以看出,多那一台用处并不大。所以集群总数推荐为奇数。


二、另外还有一个灰常关键的设置,在每个zk server配置文件的dataDir所对应的目录下,必须创建一个名为myid的文件,其中的内容必须与zoo.cfg中server.x 中的x相同,即:

/home/hadoop/tmp/zk/data/myid 中的内容为1,对应server.1中的1
/home/hadoop/tmp/zk/data/myid 中的内容为2,对应server.2中的2
/home/hadoop/tmp/zk/data/myid 中的内容为3,对应server.3中的3


三、设置dataDir和日志目录

dataDir=/var/zookeeper

dataLogDir=/var/zookeeper


四、设置端口

clientPort=2181 //客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。

  1. server.0=233.34.9.144:2008:6008  
  2. server.1=233.34.9.145:2008:6008  
  3. server.2=233.34.9.146:2008:6008  
  4. server.3=233.34.9.147:2008:6008  

  5. 服务器名称与地址:集群信息(服务器编号,服务器地址,服务器与集群中的leader交换的信息的端口选举新leader时服务器间相互通信的端口
  6. 一般来说,集群中每个服务器的A端口都是一样,每个服务器的B端口也是一样。但是当所采用的为伪集群时,IP地址都一样,只能时A端口和B端口不一样。
五、其他配置参数含义

1.tickTime:CS通信心跳数

Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。

2.initLimit:LF初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。

3.syncLimit:LF同步通信时限
集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。

六、依次启动集群中的zk(bin/zkServer.sh start)
输出日志在zookeeper.out
全部启动完成前会报错,全部启动错误消失。
jsp查看会有QuorumPeerMain进程

七、连接到zookeeper

$ bin/zkCli.sh -server 127.0.0.1:2181


0 0
原创粉丝点击