Zookeeper3.6.3三节点集群安装
为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群。(在一个节点模拟三节点,真实的三节点把ip替换一下即可,按照hadoop案件把网络打通即可)
1 下载 & 解压
下载地址
# 下载wget https://archive.apache.org/dist/zookeeper/zookeeper-3.6.6/apache-zookeeper-3.6.3-bin.tar.gz #创建zookeeper集群目录
mkdir -vp /usr/app/zookeeper-cluster#cp到指定目录
cp apache-zookeeper-3.6.3-bin.tar.gz /usr/app/zookeeper-cluster
#解压
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
#重命名为zookeeper01 zookeeper02 zookeeper03
mv apache-zookeeper-3.6.3-bin zookeeper01
cp zookeeper01 zookeeper02
cp zookeeper01 zookeeper03
2 修改配置
分别进入安装目录的 conf 目录,拷贝配置样本 zoo_sample.cfg 为
zoo.cfg 并进行修改,修改后三份配置文件内容分别如下:
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
zookeeper01 配置
tickTime=2000initLimit=10syncLimit=5dataDir=/usr/local/zookeeper-cluster/data/01dataLogDir=/usr/local/zookeeper-cluster/log/01clientPort=2181# server.1 这个1是服务器的标识,可以是任意有效数字,标识这是第几个服务器节点,这个标识要写到dataDir目录下面myid文件里# 指名集群间通讯端口和选举端口server.1=127.0.0.1:2287:3387
server.2=127.0.0.1:2288:3388
server.3=127.0.0.1:2289:3389
ps:如果是多台服务器,则集群中每个节点通讯端口和选举端口可相同,IP 地址修改为每个节点所在
主机 IP 即可。
zookeeper02 配置
tickTime=2000initLimit=10syncLimit=5dataDir=/usr/local/zookeeper-cluster/data/02dataLogDir=/usr/local/zookeeper-cluster/log/02clientPort=2182server.1=127.0.0.1:2287:3387
server.2=127.0.0.1:2288:3388
server.3=127.0.0.1:2289:3389
zookeeper03 配置
tickTime=2000initLimit=10syncLimit=5dataDir=/usr/local/zookeeper-cluster/data/03dataLogDir=/usr/local/zookeeper-cluster/log/03clientPort=2183server.1=127.0.0.1:2287:3387
server.2=127.0.0.1:2288:3388
server.3=127.0.0.1:2289:3389
配置参数说明:
tickTime:用于计算的基础时间单元。比如 session 超时:N*tickTime;
initLimit:用于集群,允许从节点连接并同步到 master 节点的初始化连接时间,以
tickTime 的倍数来表示;
syncLimit:用于集群, master 主节点与从节点之间发送消息,请求和应答时间长度(心
跳机制);
dataDir:数据存储位置;
dataLogDir:日志目录;
clientPort:用于客户端连接的端口,默认 2181
3 标识节点
分别在三个节点的数据存储目录下新建 myid 文件,并写入对应的节点标识。
Zookeeper 集群通过 myid 文件识别集群节点,并通过上文配置的节点通信端口和选举端口来进行节点通信,选举出 leader 节点。
创建存储目录:
# dataDirmkdir -vp /usr/local/zookeeper-cluster/data/01# dataDirmkdir -vp /usr/local/zookeeper-cluster/data/02# dataDirmkdir -vp /usr/local/zookeeper-cluster/data/03
创建并写入节点标识到 myid 文件:
#server1echo "1" > /usr/local/zookeeper-cluster/data/01/myid#server2echo "2" > /usr/local/zookeeper-cluster/data/02/myid#server3echo "3" > /usr/local/zookeeper-cluster/data/03/myid
4 启动集群
# 启动节点1/usr/app/zookeeper-cluster/zookeeper01/bin/zkServer.sh start# 启动节点2/usr/app/zookeeper-cluster/zookeeper02/bin/zkServer.sh start# 启动节点3/usr/app/zookeeper-cluster/zookeeper03/bin/zkServer.sh start
其他命令
/usr/app/zookeeper-cluster/zookeeper03/bin/zkServer.sh + 下面的各种指令start|start-foreground|stop|restart|status
5 集群验证
使用 jps 查看进程,并且使用 zkServer.sh status 查看集群各个节点状态。如图三个节点进程均启
动成功,并且两个节点为 follower 节点,一个节点为 leader 节点。