zookeeper集群搭建
1.搭建采用三台centos7主机,均关闭防火墙与selinux服务
2.主机信息如下表所示
主机 | IP | 端口 | 服务 |
A | 10.1.60.112 | 2181、2888、3888 | zookeeper |
B | 10.1.60.114 | 2181、2888、3888 | zookeeper |
C | 10.1.60.115 | 2181、2888、3888 | zookeeper |
3.从zookeeper官网下载安装包(本次搭建使用了3.7.1版本)
下载地址https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
4.创建zookeeper目录(以下操作所有主机都要执行)
mkdir /etc/zookeeper
5.把安装包拷贝到zookeeper目录下并解压
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz
ls
6. 进入解压后的zookeeper目录中备份并修改配置文件名称
cd zookeeper/conf
cp zoo_sample.cfg zoo.cfg
7.编辑配置文件
vi zoo.cfg
tickTime=2000 #zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是说每个tickTime时间就会发送一个心跳,即2秒
initLimit=10 #配置集群接受follower初始化连接时最长能忍受多少个心跳时间间隔数
syncLimit=5 #leader与follower之间发送消息,请求和应答时间长度不能超过多少个心跳时间
dataDir=/etc/zookeeper/zookeeper #zookeeper保存数据的目录,默认情况下zookeeper将写数据的日志文件也保存在这个目录里
dataLogDir=/etc/zookeeper/zookeeper/log #数据日志文件保存路径,类似mysql的binlog
clientPort=2181 #客户端连接Zookeeper服务器的端口,默认2181
#配置zookeeper集群信息
server.1=10.1.60.112:2888:3888 #1表示为zookeeper服务器编号,每个zookeeper不能相同,2888是服务器与集群中的leader服务器交换信息的端口,3888是leader挂掉时专门用来进行选举leader所用的端口
server.2=10.1.60.114:2888:3888
server.3=10.1.60.115:2888:3888
8.在zookeeper目录下创建服务器编号文件(每台主机的文件内容都不相同,按照配置文件中的写入)
在A主机执行即可
echo "1" >> /etc/zookeeper/zookeeper/myid
在B主机执行即可
echo "2" >> /etc/zookeeper/zookeeper/myid
在C主机执行即可
echo "3" >> /etc/zookeeper/zookeeper/myid
9.创建数据日志文件保存目录(zookeeper所有的数据都保存在这个log日志中)
mkdir /etc/zookeeper/zookeeper/log
10.启动zookeeper服务
/etc/zookeeper/zookeeper/bin/zkServer.sh start
11.启动完所有主机的zookeeper服务后查看状态
/etc/zookeeper/zookeeper/bin/zkServer.sh status
A
B
C
可以看到已经选举出B主机为集群的leader角色,A、C为follower角色
12.日志查看
若是zookeeper服务启动有问题可查看kafkaServer.out或server.log 日志
tail -f /etc/zookeeper/zookeeper/logs/kafkaServer.out
tail -f /etc/zookeeper/zookeeper/logs/server.log
13.只有leader节点会启用2888监听端口