1.准备2n+1台相互连通的虚拟机
2n+1是为了方便zookeeper的leader选举策略
2.卸载自带的openjdk并安装oracle JDK
先查看 rpm -qa | grep java
显示如下信息:
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
卸载:
rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
安装JDK:
将JDK的.tar.gz文件下载到自己选择的目录,并用命令tar zxvf jdk-8u151-linux-x64.tar.gz进行解压,得到jdk1.8.0_181
下面配置JDK环境变量,在/etc/profile文件末尾添加(假设JDK安装路径为/export/server/)
export JAVA_HOME=/export/server/jdk1.8.0_181
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=${JAVA_HOME}/bin:$PATH
3.检测集群的机器时间是否同步
所有台机器同时输入date命令,如果不同需要修改为相同。
4.关闭防火墙
//临时关闭
systemctl stop firewalld
//禁止开机启动
systemctl disable firewalld
//查看防火墙状态
firewall-cmd --state
5.下载并解压ZooKeeper
同jdk的安装一样,最后需要配置环境变量
export ZOOKEEPER_HOME=/export/server/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
6.修改ZooKeeper配置文件
zookeeper的配置文件在/zookeeper/conf下面,里面有一个zoo_sample.cfg的样例配置文件,拷贝此文件并改名为zoo.cfg(如果未指定配置文件,zookeeper默认将zoo.cfg作为配置文件),将zoo.cfg修改为
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/export/data/zkdata
# the port at which the clients will connect
clientPort=2181
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=192.168.159.128:2888:3888
server.2=192.168.159.129:2888:3888
server.3=192.168.159.130:2888:3888
其中需要将dataDir(用于表示存储数据的地址)修改为自己想要存储数据的地址。然后需要在最后加上集群的所有机器的信息
按照格式填写编号id,ip地址,两个端口号依次为心跳端口和选举端口
在dataDir所指定的地址创建一个名字为myid的文件,文件的内容为填写的id,比如上述编号id为1的机器的myid文件内容为1
7.开启服务
使用zkServer.sh start开启服务(在配置了环境变量的基础上,否则需要完整路径)
开启所有机器的服务后,可分别使用zkServer.sh status查看本节点的状态follower或者leader
网友评论