下载解压
[root@hadoop01 software]# wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz[root@hadoop01 software]# tar -zxvf zookeeper-3.4.14.tar.gz -C /opt/module/
修改zk配置
进入安装目录的 conf/ 目录下,拷贝配置样本并进行修改,之后使用 scp 命令将安装包分发到三台服务器上::
[root@hadoop01 ~]# cd /opt/module/zookeeper-3.4.14/conf[root@hadoop01 conf]# cp zoo_sample.cfg zoo.cfg[root@hadoop01 conf]# vim zoo.cfg
指定数据存储目录和日志文件目录(单机环境程序会自动创建目录),修改后完整配置如下:
tickTime=2000initLimit=10syncLimit=5dataDir=/data/zookeeper/datadataLogDir=/data/zookeeper/logclientPort=2181#组成ZooKeeper的成员服务器。server.x的x是服务器号,可以是任意有效数字,这个标识要写到dataDir目录下面myid文件里#指定两个端口号,前一个用于Follower连接Leader,后一个用于Leader选举。server.1=node01:2287:3387server.2=node02:2287:3387server.3=node03:2287:3387server.4=node04:2287:3387server.5=node05:2287:3387
配置参数说明:
- tickTime:用于计算的基础时间单元。比如 session 超时:N*tickTime;
- initLimit:用于集群,允许从节点连接并同步到 master 节点的初始化连接时间,以 tickTime 的倍数来表示;
- syncLimit:用于集群, master 主节点与从节点之间发送消息,请求和应答时间长度(心跳机制);
- dataDir:数据存储位置;
- dataLogDir:日志目录;
- clientPort:用于客户端连接的端口,默认 2181
scp拷贝
其他四个节点配置相同,拷贝过去即可
scp -r /opt/module/zookeeper-3.4.14 root@node02:/opt/module/zookeeper-3.4.14scp -r /opt/module/zookeeper-3.4.14 root@node03:/opt/module/zookeeper-3.4.14scp -r /opt/module/zookeeper-3.4.14 root@node04:/opt/module/zookeeper-3.4.14scp -r /opt/module/zookeeper-3.4.14 root@node05:/opt/module/zookeeper-3.4.14
标识节点
分别在五台主机的 dataDir 目录下新建 myid 文件,并写入对应的节点标识。Zookeeper 集群通过 myid 文件识别集群节点,并通过上文配置的节点通信端口和选举端口来进行节点通信,选举出 Leader 节点
创建存储目录,五台主机均执行此命令:
[root@hadoop01 conf]# mkdir -vp /data/zookeeper/data
创建并写入节点标识到 myid 文件:
# node01主机echo "1" > /data/zookeeper/data/myid# node02主机echo "2" > /data/zookeeper/data/myid# node03主机echo "3" > /data/zookeeper/data/myid# node04主机echo "4" > /data/zookeeper/data/myid# node05主机echo "5" > /data/zookeeper/data/myid
配置环境变量
分别在三台主机上配置 zookeeper 环境变量:
vim /etc/profile
添加环境变量:
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.14export PATH=$ZOOKEEPER_HOME/bin:$PATH
使得配置的环境变量生效:
source /etc/profile
启动集群
由于已经配置过环境变量,分别在五台主机上,执行如下命令启动服务:
/opt/module/zookeeper-3.4.14/bin/zkServer.sh start
验证
使用 JPS 验证进程是否已经启动,出现 QuorumPeerMain 则代表启动成功
[root@hadoop01 module]# jps22468 QuorumPeerMain
启动后使用 zkServer.sh status 查看集群各个节点状态
[root@kvmcompute6 bin]# ./zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /opt/module/zookeeper-3.4.14/bin/../conf/zoo.cfgMode: follower
