环境要求,节点间网络互通,已安装jdk并配置好环境变量
ZK搭建
1.下载zk安装包
下载地址:http://mirrors.hust.edu.cn/apache/zookeeper/
2.解压到目录
tar -zxvf zookeeper-3.4.10.tar.gz
3.配置环境变量,加入ZOOKEEPER_HOME
vim ~/.bash_profile
加入内容
export ZOOKEEPER_HOME=/root/zookeeper/zookeeper-3.4.10
export PATH=
P
A
T
H
:
PATH:
PATH:ZOOKEEPER_HOME/bin
别忘了source
source ~/.bash_profile
4.所有节点配置zoo.cfg文件
进入ZOOKEEPER_HOME/conf目录
复制zoo_sample.cfg文件为zoo.cfg:cp zoo_sample.cfg zoo.cfg
编辑zoo.cfg文件,如下
vim zoo.cfg
集群各节点的心跳时间间隔,保持默认即可(2s)
tickTime=2000
此配置表示,允许follower连接并同步到leader的初始化连接时间
它以tickTime的倍数来表示
当超过设置倍数的tickTime时间,则连接失败
保持默认即可(10次心跳的时间,即20s)
initLimit=10
follower与leader通信,从发送请求到接收到响应的等待时间的最大值,保持默认即可,即10s
如果10s内没有收到响应,本次请求就失败
syncLimit=5
zookeeper的数据存放的位置,默认是/tmp/zookeeper,一定要改,因为tmp目录会不定时清空
dataDir=/home/hadoop/zkdata
客户端连接的端口号,保持默认即可
clientPort=2181
以下内容手动添加
server.id=主机名:心跳端口:选举端口
注意:这里给每个节点定义了id,这些id写到配置文件中
id为1-255之间的任意的不重复的数字,一定要记得每个节点的id的对应关系
server.1=IP1:2888:3888
server.2=IP2:2888:3888
server.3=IP3:2888:3888
server.4=IP4:2888:3888:observer
5.在配置的dataDir目录下新建myid文件,并写入id
mkdir -p /home/hadoop/zkdata
cd /home/hadoop/zkdata
echo 命令会先创建文件再写入
echo 1 > myid
注意:我配置的集群id信息为:
server.1=IP1:2888:3888
server.2=IP2:2888:3888
server.3=IP3:2888:3888
server.4=IP4:2888:3888:observer
那么,在IP1的dataDir下的myid文件中的id就是1,IP2的dataDir下的myid文件中的id就是2,以此类推,一定要与配置文件中的配置相对应!
6.启动集群并验证
启动集群(每个节点都要启动)
zkServer.sh start
查看每个节点的状态
zkServer.sh status