zookeeper安装

1.百度zookeeper

ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_客户端


2.进入官方页面

ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_服务器_02


3.由第二步进入

ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_zookeeper_03


4.由第3步进入

ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_服务器_04


5.由第4步进入

ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_zookeeper_05


6.由第5步进入

ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_客户端_06


7.然后在Linux系统下载,如下

ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_zookeeper_07


ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_zookeeper_08

8.解压安装

ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_客户端_09


ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_客户端_10


ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_客户端_11


查看zookeeper的配置文件知道,zookeeper访问端口默认是2181,所以要配置打开端口

firewall-cmd --znotallow=public --add-port=2181/tcp --permanent

firewall-cmd --reload

firewall-cmd --znotallow=public --list-ports

查看zoo.cfg配置文件的参数解释
预装的zoo.cfg下面默认有五个属性,他们分别是:1.tickTime,2.initLimit,3.syncLimit,4.dataDir,5.clientPort
(1)tickTime
——CS通信心跳时间

tick翻译成中文的话就是滴答滴答的意思,连起来就是滴答滴答的时间,寓意心跳间隔,单位是毫秒,系统默认是2000毫秒,也就是间隔两秒心跳一次。

tickTime的意义:客户端与服务器或者服务器与服务器之间维持心跳,也就是每个tickTime时间就会发送一次心跳。通过心跳不仅能够用来监听机器的工作状态,还可以通过心跳来控制Flower跟Leader的通信时间,默认情况下FL的会话时常是心跳间隔的两倍。

(2)initLimit
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。

(3)syncLimit
集群中flower服务器(F)跟leader(L)服务器之间的请求和答应最多能容忍的心跳数。

(4)dataDir
该属性对应的目录是用来存放myid信息跟一些版本,日志,跟服务器唯一的ID信息等。
不要使用/tmp来做存储快照的目录,/tmp这只是一个案例。在集群zookeeper服务在启动的时候回去读取zoo.cfg这个文件,从这个文件中找到这个属性然后获取它的值也就是dataDir 的路径,它会从这个路径下面读取mydi这个文件,从这个文件中获取要启动的当前服务器的地址,当它找不到这个地址的时候就会抛出异常,我们可以去查看状态

(5)clientPort
客户端连接的接口,客户端连接zookeeper服务器的端口,zookeeper会监听这个端口,接收客户端的请求访问!这个端口默认是2181。

集群信息的配置
在zoo.cfg这个文件中,配置集群信息是存在一定的格式:service.N =YYY: A:B

N:代表服务器编号(也就是myid里面的值)

YYY:服务器地址

A:表示 Flower 跟 Leader的通信端口,简称服务端内部通信的端口(默认2888)

B:表示 是选举端口(默认是3888)

server.id=host:port:port解析
每一行此配置表示一个集群中的一台服务器。其中id为Server ID,用来标识该机器在集群中的编号。同时,在所在服务器的数据目录(/tmp/zookeeper)下创建一个myid文件,该文件只有一行内容,并且是一个数字,就是对应每台服务器的Server ID数字。

比如server.1=IP1:2888:3888的myid中的内容就是1。不同服务器的ID需要保持不同,并且和zoo.cfg文件中server.id中的id和myid文件的内容保持一致。id的取值范围为1~255。

其中,server.id中配置参数的第一个port是集群中其他机器与Leader之间通信的端口,第二个port为当Leader宕机或其他故障时,集群进行重新选举Leader时使用的端口。

按照以上相同步骤,配置集群中的其他机器。每个集群的zoo.cfg文件都是相同的,可通过版本控制或其他工具保证每台zookeeper服务器的配置文件相同。集群中每台机器唯一不同的是server.id对应的myid文件中的数字不同。

需要注意的是一般zookeeper集群由3~5台服务器组成,即2n+1台机器。

每台机器的zookeeper配置,zoo.cfg文件相同

ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_服务器_12


启动服务器,可以使用下面 的命令来来查看端口监听情况

netstat -tan

ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_zookeeper_13


画红线的地方就是当前Zookeeper服务器的监听的端口,粉色圈起来的地方我们还可以分析出哪台服务器的2888端口已经打开在监听客户端的请求,也就是说IP地址是

192.168.2.16这太服务器就是当前的Leader,还可以看出另外两台服务器的3888选举端口已经在监听。

关于 netstat -tan

ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_客户端_14


ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_zookeeper_15


ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_zookeeper_16


ZOOKEEPER 容器化 启动 修改密码 zookeeper配置密码_zookeeper_17