本文以zookeeper-3.4.13为例介绍集群安装
假设有3台linux服务器,地址分别为:
192.168.10.25
192.168.10.31
192.168.10.90
每台机器上都有目录/home/yimin
下载
下载安装包:http://archive.apache.org/dist/zookeeper/
安装
使用tar解压要安装的目录即可,以3.4.13版本为例
这里以解压到/home/yimin,实际安装根据自己的想安装的目录修改(注意如果修改,那后边的命令和配置文件中的路径都要相应修改)
解压后目录结构为:
配置
在3台服务器/home/yimin/zookeeper-3.4.13/conf目录中都创建zoo.cfg文件,内容如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/yimin/zookeeper-3.4.13/data
clientPort=2181
server.0=192.168.10.25:2888:3888
server.1=192.168.10.31:2888:3888
server.2=192.168.10.90:2888:3888
参数说明:
tickTime :客户端与服务器或者服务器与服务器之间维持心跳,也就是每个tickTime时间就会发送一次心跳。通过心跳不仅能够用来监听机器的工作状态,还可以通过心跳来控制Flower跟Leader的通信时间,默认情况下FL的会话时常是心跳间隔的两倍。
initLimit:集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
syncLimit:集群中flower服务器(F)跟leader(L)服务器之间的请求和答应最多能容忍的心跳数。
dataDir:该属性对应的目录是用来存放myid信息跟一些版本,日志,跟服务器唯一的ID信息等。
clientPort:客户端连接的接口,客户端连接zookeeper服务器的端口,zookeeper会监听这个端口,接收客户端的请求访问!这个端口默认是2181。
集群信息的配置
在zoo.cfg这个文件中,配置集群信息是存在一定的格式:service.N =YYY: A:B
N:代表服务器编号(也就是myid里面的值)
YYY:服务器地址
A:表示 Flower 跟 Leader的通信端口,简称服务端内部通信的端口(默认2888)
B:表示 是选举端口(默认是3888)
myid文件
在3个zookeeper节点中data目录下分别创建myid文件,并分别添加内容0、1、2
启动
在/home/yimin/zookeeper-3.4.13/bin目录运行:
./zkServer.sh start
状态查询
在/home/yimin/zookeeper-3.4.13/bin目录运行:
./zkServer.sh status
输出类似信息:
ZooKeeper JMX enabled by default
Using config: /home/yimin/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: follower
当前主机是follower状态
ZooKeeper JMX enabled by default
Using config: /home/yimin/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: leader
当前主机是leader状态
停止
./zkServer.sh stop