Linux系统下Zookeeper集群环境的搭建

 1:下载Zookeeper

下载地址:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/

2:配置和安装Zookeeper

#我的目录统一放在/opt下面

#首先创建Zookeeper项目目录

mkdir zookeeper

#再进入新建好的zookeeper目录下创建模拟的三个服务器的项目目录(server1,server2,server3)

mkdir  server1

mkdir  server2

mkdir  server3

#将下载好的zookeeper-3.4.10.tar.gz解压到三个server中

tar -zxvf  zookeeper-3.4.10.tar.gz

#在server1,server2,server3中分别创建下面两个文件夹

mkdir data  #存放快照日志

mkdir datalog  #存放事务日志

修改配置文件

进入到解压后的zookeeper-3.4.10的conf目录.

#进入到conf目录

/opt/zookeeper/server1/zookeeper-3.4.10/conf
/opt/zookeeper/server2/zookeeper-3.4.10/conf
/opt/zookeeper/server2/zookeeper-3.4.10/conf

conf目录中的zoo_sample.cfg  这个文件是官方给我们的zookeeper的样板文件,我们复制一份命名为zoo.cfg保存在和样板文件同目录下(server1,server2,server3操作步骤一样),zoo.cfg是官方指定的文件命名规则。

cp zoo_sample.cfg  zoo.cfg

修改/opt/zookeeper/server1/zookeeper-3.4.10/conf/zoo.cfg文件如下:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/server1/data
dataLogDir=/opt/zookeeper/server1/datalog
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

server2,server3中的/zookeeper-3.4.10/conf/zoo.cfg文件和server1中的更改内容大致相同,需要注意的是dataDir,dataLogDir属性的值要改为server2,server3相应的data和datalog目录. clientPort=2181端口号要在server2和server3中分别改为 clientPort=2182和 clientPort=2183

配置文件解释:

#tickTime:
这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
#initLimit:
这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
#syncLimit:
这个配置项标识 Leader 与Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是5*2000=10秒
#dataDir:
快照日志的存储路径
#dataLogDir:
事物日志的存储路径,如果不配置这个那么事物日志会默认存储到dataDir制定的目录,这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事物日志、快照日志太多
#clientPort:
这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。修改他的端口改大点

创建myid文件

#在server中的data文件夹下创建myid文件

#server1
/opt/zookeeper/server1/data/myid
文件中内容为 1  

#server2
/opt/zookeeper/server2/data/myid
文件中内容为 2

#server3
/opt/zookeeper/server3/data/myid
文件中内容为 3

  vim myid 输入文本的内容

启动服务并查看

1,启动服务

#进入到Zookeeper的bin目录下
#server1
cd /opt/zookeeper/server1/zookeeper-3.4.10/bin

#启动服务
./zkServer.sh start

#server2
cd /opt/zookeeper/server2/zookeeper-3.4.10/bin

#启动服务
./zkServer.sh start

#server3
cd /opt/zookeeper/server3/zookeeper-3.4.10/bin

#启动服务
./zkServer.sh start

#启动成功后的信息(server1为例):

2,检查服务状态

#检查服务器状态
./zkServer.sh status

#下面的状态为启动成功。

[root@localhost bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/server2/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: leader#Mode有两种类型:leader和follower,leader代表领导(主节点),follower代表下属(备节点)
#zk集群一般只有一个leader,多个follower,主一般是相应客户端的读写请求,而从主同步数据,当主挂掉之后就会从follower里投票选举一个leader出来。

至此,zookeeper集群就成功搭建完成了。

猜你喜欢

转载自blog.csdn.net/qq_37469055/article/details/84201320