Zookeeper集群环境搭建


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

你可能感兴趣的:(Zookeeper集群环境搭建)