介绍
Zookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以单机模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。
系统环境
centos:7.1 zookeeper:3.4.8 java:1.8(请事先安装好)
测试机
10.20.69.225(zookeeper主)
10.20.108.128
10.20.69.140
http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz
1>根据下面列表,在每台机的/etc/hostname 里设置对应的主机名
10.20.108.128 slave2
10.20.69.140 slave1
10.20.69.225 master
2>将下面列表追加到每台机的/etc/hosts 文件中
10.20.108.128 slave2
10.20.69.140 slave1
10.20.69.225 master
3>在防火墙内,将三台机的以下端口开放:
2181
2888
3888
只在master机内执行:
tar -zxvf zookeeper-3.4.8.tar.gz
mv zookeeper-3.4.8 /usr/local/zookeeper
只在master机内执行:
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
将以下内容追回到zoo.cfg内:
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
scp -r zookeeper/ slave1:/home/haduser/zookeeper/zookeeper
scp -r zookeeper/ slave2:/home/haduser/zookeeper/zookeeper
1>在所有机上执行:
mkdir -p /tmp/zookeeper
2>修改所有机器上的myid,例如修改slave1中的myid如下:
haduser@slave1:/user/local/zookeeper$ echo "2" > data/myid
haduser@slave1:/user/local/zookeeper$ cat data/myid
2
myid对应关系:
master:1
slave1:2
slave2:3
3>在所有机上启动ZK
bin/zkServer.sh start
1>在每台机使用jps命令查看进程:
其中,QuorumPeerMain是zookeeper进程,启动正常。
2>在每台机执行命令: ./bin/zkServer.sh status
至此,Zookeeper集群安装大功告成!