- 安装jdk 1.8.0环境
- 编辑jdk的环境变量,并且验证是否生效
/etc/profile添加
export JAVA_HOME=/usr/lib/jvm/java
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profie
3. 解压zookeeper的压缩包
cd /root/zookeeper/
tar -xvf zookeeper-3.4.14.tar.gz
4. 把解压后的目录传至安装目录下面
mv zookeeper-3.4.14 /home/admin/zookeeper
ll /home/admin/
5. 修改zoo.cfg配置文件
cd /home/admin/zookeeper/conf
mkdir bak
mv zoo_sample.cfg bak/
cp bak/zoo_sample.cfg zoo.cfg
vim zoo.cfg
添加以下内容即可:
server.1=centos1:2888:3888
server.2=centos2:2888:3888
server.3=centos3:2888:3888
#注意centos1、centos2、centos3需要IP
initLimit
ZooKeeper集群模式下包含多个zk进程,其中一个进程为leader,余下的进程为follower。
当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。initLimit配置follower与leader之间建立连接后进行同步的最长时间。
syncLimit
配置follower和leader之间发送消息,请求和应答的最大时间长度。
tickTime
tickTime则是上述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10秒。
server.id=host:port1:port2
其中id为一个数字,表示zk进程的id,这个id也是dataDir目录下myid文件的内容。
host是该zk进程所在的IP地址,port1表示follower和leader交换消息所使用的端口,port2表示选举leader所使用的端口。
dataDir
其配置的含义跟单机模式下的含义类似,不同的是集群模式下还有一个myid文件。myid文件的内容只有一行,且内容只能为1 - 255之间的数字,这个数字亦即上面介绍server.id中的id,表示zk进程的id。
- 在数据目录下面创建myid的进程id文件,必须为1、2、3
#centos1
echo "1" > /data/myid
#centos2
echo "2" > /data/myid
#centos3
echo "3" > /data/myid
-
启动zookeeper服务
./zkServer.sh start -
验证服务
- 状态验证
echo stat|nc 10.10.10.101 2181
echo stat|nc 10.10.10.102 2181
echo stat|nc 10.10.10.103 2181
2) 查看端口是否监听
netstat -anptul | egrep "2181|3888"