在搭建zk集群之前,首先需要准备好3台虚拟机.因为zk的集群中存在leader选择的操作,需要集群中超过半数的机器同意,因此机器数量需要2n+1台.
1安装jdk.
下jdk-8u191-linux-x64.tar.gz,并上传到服务器相应目录下
使用 tar -xvf 进行解压
配是环境变量
sudo vi /etc/profile
在最下面加上
export JAVA_HOME=自己安装jdk的路径
export CLASSPATH=.:JAVA_HOME/jre/lib/rt.jar:JAVA
HOME/jre/lib/rt.jar:JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=PATH:PATH:JAVA_HOME/bin
重启配置
source /etc/profile
验证jdk
java -version
2.安装单节点zk
1.下载zk https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.5/
2.将下载好的zk 上传到服务器对应目录下
3.使用 tar -xvf 进行解压
4.进入到zk的/conf目录下,对zoo_sample.cfg复制一份,并命名为zoo.cfg
5.进入到/bin目录下.执行sh zkServer.sh start 启动
通过上面2步,已经搭建了好了zk服务.不过现在这样都是单机的.下面来配置集群.
集群
在 zookeeper 集群中,各个节点总共有三种角色,分别是:leader,follower,observer
1.修改配置文件 zoo.cfg.在配文件末尾添加如下内容
修改端口
server.1=IP1:2888:3888 【2888:访问 zookeeper 的端口;3888:重新选举 leader 的端口】
server.2=IP2:2888:3888
server.3=IP3:2888:2888
注意: 每一行后面千万不能有有空格!不能有空格!不能有空格!
2.新建 datadir 目录,设置 myid
在每一台我们都需要在数据目录(dataDir)下创建一个 myid 文件,该文件只有一行内容,对应每台机器的 Server ID 数字;比如 server.1 的 myid 文件内容就是 1。【必 须确保每个服务器的 myid 文件中的数字不同,并且和自己所在机器的 zoo.cfg 中 server.id 的 id 值一致,id 的范围是 1~255】
3.启动服务
注意:在搭建过程,要关闭防火墙,或者打开响应端口,否则会报错.