Zookeeper集群搭建

Zookeeper是Apache的一个开源项目,在集群管理中十分常用。它的集群搭建也十分简单,只需要简单的配置,集群的各个节点会完成自行通讯,自动选取Leader等。

更多关于zookeeper的信息和原理,可以参考这篇博文:ZooKeeper原理及使用


Zookeeper的单机模式更加简单:
      在Ubuntu系统下,只需要执行sudo apt-get install zookeeper安装,然后到安装目录下找到zkServer.sh脚本,执行./zkServer.sh start就启动了zookeeper的单机模式,通过这种方式安装的zookeeper的目录通常是/usr/share/zookeeper/。通过执行zkServer.sh status可以看到zookeeper的运行状态,这里使用的是单机模式,则会显示:
[plain]  view plain  copy
  1. JMX enabled by default  
  2. Using config: /etc/zookeeper/conf/zoo.cfg  
  3. Mode: standalone  
      如果是在其他的Linux系统(CentOS)上,执行:
[plain]  view plain  copy
  1. wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz  
  2. tar zxf zookeeper-3.4.6.tar.gz  
  3. cd zookeeper-3.4.6/conf/  
这个目录下有一个zoo_sample.cfg文件,是官方提供的示例配置,执行:
[plain]  view plain  copy
  1. cp ./zoo_sample.cfg zoo.cfg  
复制一份示例配置,改名为zoo.cfg,启动zookeeper:
[plain]  view plain  copy
  1. ../bin/zkServer.sh start  


下面我们来尝试一下搭建zookeeper集群,由于机器有限,我采用在一台机器上搭建伪集群的方式来搭建集群。
zookeeper官方推荐集群的节点数要是奇数,因此我们这里准备搭建3个节点的集群。
首先,创建三个文件夹分别表示三个节点:
[plain]  view plain  copy
  1. mkdir server0  
  2. mkdir server1  
  3. mkdir server2  

然后将下载好的zookeeper文件解压到每个目录下:
[plain]  view plain  copy
  1. tar xzvf zookeeper-3.4.6.tar.gz -C ./server0/  
  2. tar xzvf zookeeper-3.4.6.tar.gz -C ./server1/  
  3. tar xzvf zookeeper-3.4.6.tar.gz -C ./server2/  
同时更改目录名称:
[plain]  view plain  copy
  1. mv ./server0/zookeeper-3.4.6 ./server0/zookeeper  
  2. mv ./server1/zookeeper-3.4.6 ./server1/zookeeper  
  3. mv ./server2/zookeeper-3.4.6 ./server2/zookeeper  

然后进入到每个节点的zookeeper目录下,分别创建data目录以及logs目录:
[plain]  view plain  copy
  1. mkdir data  
  2. mkdir logs  

然后在data目录下创建myid文件,内容为当前节点的序号,如0,1,2:
[plain]  view plain  copy
  1. vim ./data/myid  
填入序号,保存;
接下来进入conf目录创建zoo.cfg文件:
[plain]  view plain  copy
  1. vim ./zoo.cfg  
内容按下面方式填写:
tickTime=2000 
initLimit=5 
syncLimit=2 
dataDir=/opt/ server0/zookeeper/data 
dataLogDir=/opt/ server0/zookeeper/logs 
clientPort= 2180
server.0=127.0.0.1:8880:7770 
server.1=127.0.0.1:8881:7771 
server.2=127.0.0.1:8882:7772
其中标红的部分要根据当前节点序号进行修改,例如当前在server0目录下,则按照上面的配置填写,然后保存。
填写完配置后就可以启动zookeeper了:
[plain]  view plain  copy
  1. ./bin/zkServer.sh start  
然后在另外两个节点的目录下重复上述操作,伪集群就搭建好啦。
通过./bin/zkServer.sh status可以看到当前节点在集群中的角色,显示如下:
[plain]  view plain  copy
  1. JMX enabled by default  
  2. Using config: /opt/zookeeper/server0/zookeeper/bin/../conf/zoo.cfg  
  3. Mode: follower  
通过./bin/zkCli.sh -server host:port的方式能够指定任一一个节点访问到集群:
[plain]  view plain  copy
  1. ./bin/zkCli.sh -server 127.0.0.1:2181  

你可能感兴趣的:(集群)