ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
1. 介质准备
官网下载
本例使用zookeeper-3.4.6.tar.gz
2. 主机名称到IP地址映射配置
ZooKeeper集群中有两个角色:Leader和Follower(运行过程中,只有一个Leader),在配置zookeeper集群的时候,每一个结点的host到IP地址的映射都要配置上集群中其他节点的映射信息。
例如:我的zookeeper集群中每个结点的配置如下:
10.11.2.3 Haibeidb1
10.11.2.4 haibeibd2
10.11.2.5 Haibeidb3
3. 修改zookeeper的配置文件
zookeeper属于解压即可用的软件,在其中一台服务器(10.11.2.3)上,解压zookeeper3.4.6.tar.gz,修改其中的配置文件conf/zoo.cfg
(把zoo_sample.cfg文件改成zoo.cfg),内容如下:
其中
dataDir=/home/trs/zookeeper-3.4.6/zdatas
是设置myid,里面内容是一个数字,为了统一管理,把myid的存放路径放在zookeeper-3.4.6下面的zdatas目录中,后面会介绍
4. 远程复制分发安装文件
上面这一步已经在一台机器(10.11.2.3)配置完成zookeeper,现在可以将该配置好的安装文件远程拷贝到集群中的各个结点对应的目录下:
# cd /home/trs/
# scp -r zookeeper-3.4.6/ root@10.11.2.4:/home/trs/
# scp -r zookeeper-3.4.6/ root@10.11.2.5:/home/trs/
如果scp不通,则需要检查是否有防火墙设备限制了22端口,且需要在2.4/5服务器的/etc/hosts.allow
文件中增加一行:
sshd:10.11.2.3
以允许2.3传输。
5. 设置myid
在我们之前配置的dataDir指定的目录下,创建一个myid文件,里面内容是一个数字,用来标识当前主机,conf/zoo.cfg文件中的server.x中x是什么数字,则myid文件中就输入这个数字,例如:
6. 启动zookeeper集群
在每个zookeeper集群的每个结点上,执行启动zookeeper服务的脚本:
# bin/zkServer.sh start
这里可以用jps命令来查看zookeeper有没有成功启动:
7. 状态查看
可以通过zookeeper的脚本来查看启动状态,包括集群中各个结点角色(Leader或者Follower):
# bin/zkServer.sh status