Linux搭建zookeeper集群


Linux搭建zookeeper集群

环境准备

准备三台虚拟机且安装好zookeeper,安装教程:

分别修改三台虚拟机的hostname(修改/etc/hostname文件),笔者三台虚拟机主机名分别是:zookeeper1、zookeeper2、zookeeper3

创建myid文件

分别在zookeeper配置的数据存储路径(dataDir的值)下创建myid文件,并分别在myid文件添加编号1、2、3(注意:编号可以自定义但是上下不要有空行,左右不要有空格)

修改配置文件

分别修改zoo.cfg配置文件,添加如下内容:

server.1=zookeeper1:2888:3888
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888

内容格式:server.A=B:C:D,配置参数解读:

  • A是一个数字,表示这个是第几号服务器:集群模式下配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面有一个数据就是 A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是哪个 server
  • B是这个服务器的地址即主机名
  • C是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口
  • D是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口

配置完成分别启动zookeeper,查看状态:1个leader,2个follower

注意:启动zookeeper前需要关闭防火墙,集群之间才能互相通信,否则查看状态可能会发现报如下错误:

Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.

至此,集群搭建成功