环境要求:必须要有jdk环境,本次讲课使用jdk1.8
结构:一共三个节点(zk服务器集群规模不小于3个节点),要求服务器之间系统时间保持一致。
我这里三个环境IP地址分别是:192.168.128.139,192.168.128.140,192.168.128.141
上传zk并且解压
进行解压: tar -zxvf zookeeper-3.4.10.tar.gz
重命名: mv zookeeper-3.4.10 zookeeper
修改zookeeper环境变量
vi /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_71
export ZOOKEEPER_HOME=/usr/local/zookeeper
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
刷新环境变量配置:source /etc/profile
修改zoo_sample.cfg文件
cd /usr/local/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
修改配置文件zoo.cfg (修改两处)
注意同时在zookeeper创建data和log目录: mkdir -p /usr/local/zookeeper/{data,log}
(1) 配置data和log目录
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log(2)最后面添加
server.0=192.168.128.139:2888:3888
server.1=192.168.128.140:2888:3888
server.2=192.168.128.141:2888:3888
服务器标识配置:
cd /usr/local/zookeeper/data
创建文件myid并填写内容为0: vi myid (输入内容:0,为服务器标识)
:wq保存
到此,第一台zookeeper节点搭建完毕,然后clone两台服务器节点出来
clone之后的服务器需要修改的地方有:把myid文件里的值(服务器标识)分别修改为1和2
vi /usr/local/zookeeper/data/myid
启动zookeeper
cd /usr/local/zookeeper/bin
启动:./zkServer.sh start (注意这里3台机器都要进行启动
查看状态: ./zkServer.sh status (在三个节点上检验zk的mode,一个leader和俩个follower)
查看进程:ps -ef | grep zookeeper
关闭的命令是:./zkServer.sh stop
注意:
一、zookeeper有三个端口(可以修改)及作用
1、2181:对cline端提供服务
2、3888:选举leader使用
3、2888:集群内机器通讯使用(Leader监听此端口)
二、部署时注意
1、单机单实例,只要端口不被占用即可
2、单机伪集群(单机,部署多个实例),三个端口必须修改为组组不一样
如:myid1 : 2181,3888,2888
myid2 : 2182,3788,2788
myid3 : 2183,3688,2688
三、集群(一台机器部署一个实例)
#配置集群
server.l=master:2888:3888
server.2=slaver1:2888:3888
server.3=slaver2:2888:3888
server.A=B:C:D
A:表示一个数字,这个数字表示第几个服务器,配置在myid的文件
B:服务器地址,也就是ip地址
C:本台服务器与集群中的lender服务器交换信息端口
D:万一leader挂了就需要这个端口重新选举
四.集群最少要几台机器
集群规则是怎样的集群规则为2N+1台,N>0,即3台。
如果需要增加oberver节点:
1. 清除旧数据:
cd /usr/local/zookeeper/data
cd /usr/local/zookeeper/log
mkdir /usr/local/zookeeper/{data,log}
2. 新加observer机器配置:
cd /usr/local/zookeeper/data
vi myid里面填3
3. observer机器zoo.cfg多加上:
peerType=observer
4. 非observer机器zoo.cfg只需多家一个server