Linux - zookeeper安装/集群搭建

安装

Zookeeper 的运行需要 jdk。使用前 Linux 系统要安装好 jdk.

1、下载安装包

下载地址:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz

由于zookeeper集群的运行需要Java运行环境,所以需要首先安装 JDK

2、上传 解压到指定文件下 修改文件夹名

[root@localhost tools]# rz  //上传
[root@localhost tools]# tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz -C /liux/dev
[root@localhost dev]# mv apache-zookeeper-3.7.0-bin/ zookeeper-3.7.0

3、配置文件

在 zookeeper 的 conf 目录下,拷贝样例文件 zoo-sample.cfg 为 zoo.cfg,zookeeper 启动时会读取该文件作为默认配置文件。

[root@localhost conf]# cp zoo_sample.cfg zoo.cfg

4、启动

启动 Zookeeper (切换到安装目录的 bin 目录下):./zkServer.sh start

5、关闭

关闭(切换到安装目录的 bin 目录下):./zkServer.sh stop

6、配置环境变量

不是必要操作,只不过如果不配置环境变量,那么每次启动zookeeper需要到安装文件的 bin 目录下去启动。

首先进入到 /etc/profile 目录,添加相应的配置信息:

#set zookeeper environment

export ZK_HOME=/liux/dev/ zookeeper-3.7.0

export PATH=$PATH:$ZK_HOME/bin

shutdown -r now 重启下服务器或者 source /etc/profile 均可使环境变量生效


搭建zookeeper集群

1、集群特点

集群中只要有超过半数的机器是正常工作的,那么整个集群对外就是可用的;也就是说 如果有 2 个 zookeeper,那么只要有 1 个故障了,zookeeper 就不能用了,因为 1 没有过半, 所以 2 个 zookeeper 不是高可用的,不能容忍任何 1 台发生故障; 同理,要是有3个zookeeper,一个故障了,还剩下2个正常的,过半了,所以3个zookeeper 才是高可用的,因为能容忍 1 台发生故障; 总结,Zookeeper 集群中 Zookeeper 节点个数是奇数,保证高可用至少要 3 个以上。

在一台计算机上安装 3 个 Zookeeper 搭建一个伪集群。每个安装的 Zookeeper 相当于一个独立的服务器上的集群节点。

2、搭建集群

把已经安装好的 Zookeeper 复制三份分别命名: zookeeper-3.7.1 、 zookeeper-3.7.2、 zookeeper-3.7.3。

执行 cp -rf 拷贝命令

3、创建 data 目录存放数据

在每个 Zookeeper 的主目录下创建目录 data

4、修改 zoo.cfg

加入集群中各 Zookeeper 的信息,3 个 Zookeeper 各自 conf 的 zoo.cfg 文件修改内容。

参考文档:https://zookeeper.apache.org/doc/r3.5.8/zookeeperStarted.html

zookeeper-3.7.1 的 zoo.cfg:
dataDir=/liux/dev/zookeeper-3.7.1/data/
clientPort=2182
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
其中 2888 端口号是 zookeeper 服务之间通信的端口,3888 是 zookeeper 与选举新的领导者,
追随者连接到领导者服务器的端口。server.1 中数字是集群中 Zookeeper 的标志。用来区别
其他 Zookeeper。

其他两个 Zookeeper 的 conf/zoo.cfg
zookeeper-3.7.2/conf/zoo.cfg
clientPort=21i83
dataDir=/liux/dev/zookeeper-3.7.2/data/
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

zookeeper-3.7.3/conf/zoo.cfg
clientPort=2184
dataDir=/liux/dev/zookeeper-3.7.3/data/
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

zoo.cfg 部分参数解析:

tickTime:基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳;最小的session过期时间为2倍tickTime

dataDir:存储内存中数据库快照的位置,除非另有说明,否则指向数据库更新的事务日志。注意:应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能。

clientPort:监听客户端连接的端口。

initLimit:允许follower连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败。

syncLimit:表示Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。

server.A=B:C:D

A:是一个数字,表示这个是服务器的编号;B:是这个服务器的 ip 地址;C:Zookeeper服务器之间的通信端口;D:Leader选举的端口。

5、增加 myid 文件

Zookpeer使用myid识别当前服务器是谁,和zoo.cfg中的server.1 , server.2,server.3对应。 在每个 Zookeeper 数据存放目录 data 下新建 myid 文件。文件没有扩展名。

zookeeper-3.7.1/data/myid 文件内容是 1

zookeeper-3.7.2/data/myid 文件内容是 2

zookeeper-3.7.3/data/myid 文件内容是 3

6、启动三个 Zookeeper

进入bin 目录执行命令:./zkServer.sh star

7、查看 Zookeeper 状态

执行命令 ./zkServer.sh status

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值