zookeeper集群部署

来源:互联网 发布:input type file js 编辑:程序博客网 时间:2024/06/05 18:57

0)服务器环境:

三台虚拟机,并且配置ssh互信:

  • centos1 192.168.137.122;
  • centos2 192.168.137.101;
  • centos3 192.168.137.102

1)下载、解压ZooKeeper

wgethttp://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

  • 解压到/usr/local/目录中:

tar-xvzf zookeeper-3.4.6.tar.gz -C /usr/local/

  • 添加到环境变量:

exportZOOKEEPER_HOME=/usr/local/zookeeper-3.4.6/

exportPATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

source/etc/profile

2)修改配置文件:

zookeeperconf/目录下,将zoo_sample.cfg重命名为zoo.cfg,然后:

  1. 将工作目录改为dataDir安装目录的data下(dataDir手工建立):dataDir=/usr/local/zookeeper-3.4.6/dataDir
  2. 添加集群中的节点:

server.1=centos1:2888:3888

server.2=centos2:2888:3888

server.3=centos3:2888:3888

  1. dataDir目录下创建接myid文件:根据server.X的号码在相应的节点上的dataDir下建立myid文件,内容为X

3)以上在其中一台机子配置好了zookeeper,然后将zookeeper的目录scp到另外的两台机子上即可:

  1. scp -r zookeeper-3.4.6 root@centos3:/usr/local/
  2. 在另外两台机子上修改myid文件内容;
  3. 在另外两台机子上配置环境变量;

4)启动zookeeper集群:

  • 在三台机子上分别执行:zkServer.sh  start
  • 查看集群状态:zkServer.sh status

 

5zookeeper配置文件说明

  • tickTime=2000:ZK中的一个时间单元。ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的。例如,session的最小超时时间是2*tickTime。
  • initLimit=10:Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许F在initLimit时间内完成这个工作。通常情况下,我们不用太在意这个参数的设置。如果ZK集群的数据量确实很大了,F在启动的时候,从Leader上同步数据的时间也会相应变长,因此在这种情况下,有必要适当调大这个参数了。
  • syncLimit=5:在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果L发出心跳包在syncLimit之后,还没有从F那里收到响应,那么就认为这个F已经不在线了。注意:不要把这个参数设置得过大,否则可能会掩盖一些问题。
  • clientPort=2181:客户端连接server的端口,即对外服务端口,一般设置为2181。
  • server.1=centos1:2888:3888:2888端口号是zookeeper服务之间通信的端口flowerleader,而3888是zookeeper与其他应用程序通信的端口(选举用的)。而centos1是在hosts中已映射了本机的ip。
原创粉丝点击