ZooKeeper的安装和配置过程

ZooKeeper服务器是用Java创建的,它需要在JVM上运行,所以需要使用JDK1.6及以上版本。
查看是否安装了Java环境:

java -version

没有安装的先去安装JDK:Linux 安装 JDK

官网下载zooKeeper

官网下载zooKeeper:zookeeper官网
下载速度太慢的话,可以复制下载链接到迅雷下载,我这里下载的是当前的稳定版本apache-zookeeper-3.7.1-bin.tar.gz

一定要下载-bin的包 (apache-zookeeper-xxx-bin.tar.gz)
否则,启动的时候很容易出错

ZooKeeper有两种运行模式,一个是集群模式,一个是单机模式。这里只配置集群模式,单机模式可以看文末的参考文档。

集群模式

假设用三台机器来搭建ZooKeeper集群,IP地址为IP1,IP2,IP3

1、创建zookeeper目录

mkdir -p /usr/local/zookeeper

2、将下载好的压缩包使用Xftp传到zookeeper目录并解压

[root@localhost zookeeper]# tar -zvxf apache-zookeeper-3.7.1-bin.tar.gz

3、在 /usr/local/zookeeper/apache-zookeeper-3.7.1-bin 文件夹下,创建data、logs文件夹

[root@localhost apache-zookeeper-3.7.1-bin]# mkdir data
[root@localhost apache-zookeeper-3.7.1-bin]# mkdir logs

4、 配置zoo.cfg文件
/usr/local/zookeeper/apache-zookeeper-3.7.1-bin/conf目录下复制zoo_sample.cfg创建一个新文件命名为zoo.cfg

[root@localhost conf]# cp zoo\_sample.cfg zoo.cfg

并对zoo.cfg按照如下代码进行简单配置:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/apache-zookeeper-3.7.1-bin/data
dataLogDir=/usr/local/zookeeper/apache-zookeeper-3.7.1-bin/logs
clientPort=2181
server.1=IP1:2888:3888
server.2=IP2:2888:3888
server.3=IP3:2888:3888

配置参数解释如下:

a). tickTime:该参数单位是毫秒ms,用于配置ZooKeeper中最小时间单元的长度,很多运行时的时间间隔都是使用tickTime的倍数来表示的。

b). initLimit:该参数要配置一个正整数N,表示tickTime的N倍。用于配置Leader服务器等待Follower启动,并完成数据同步的时间。Follower服务器在启动过程中,会与Leader建立连接并完成对数据的同步,从而确定自己对外提供服务的起始状态。Leader服务器允许Follower在initLimit时间内完成这个工作。

c). syncLimit:该参数要配置一个正整数N,表示tickTime的N倍。用于配置Leader服务器和Follower之间进行心跳检测的最大延时时间。如果Leader服务器在syncLimit时间内无法获取到Follower的心跳检测响应,那么Leader就会认为该Follower已经脱离了和自己的同步。

d). dataDir:用于配置ZooKeeper服务器存储快照文件的目录。默认情况下,如果没有配置参数dataLogDir,那么事务日志也会存储在这个目录中。考虑到事务日志的写性能直接影响ZooKeeper整体的服务能力,因此建议同时通过参数dataLogDir来配置ZooKeeper的事务日志的存储目录。

e). dataLogDir:用于配置ZooKeeper服务器存储事务日志文件的目录。dataDir和dataLogDir都要确保有读写权限。

f). clientPort:用于配置当前服务器对外的服务端口,客户端会通过该端口和ZooKeeper服务器创建连接。

g). server.id=host:port:port:该参数用于配置组成ZooKeeper集群的机器列表,其中id即为ServerID,与每台服务器myid文件中的数字相对应。同时,在该参数中,会配置两个端口:第一个端口用于指定Follower服务器与Leader进行运行时通信和数据同步时所使用的端口,第二个端口则专门用于进行Leader选举过程中的投票通信。在ZooKeeper服务器启动的时候,其会根据myid文件中配置的ServerID来确定自己是哪台服务器,并使用对应配置的端口来时行启动。如果在实际使用过程中,需要在同一台服务器上部署多个ZooKeeper实例来构成伪集群的话,那么这些端口都需要配置成不同。

5、 创建myid文件

在dataDir所配置的目录下,创建一个名为myid的文件,在该文件的第一行写上一个数字,即ServerID,和zoo.cfg中当前机器的编号对应上。例如,server.1的myid文件内容就是“1”。要确保每个服务器的myid文件中的数字不同,并且和自己所在机器的zoo.cfg中的server.id=host:port:port的id值一致。id的范围是1~255。

6、 重复 1 - 5 步,为所有机器配置zoo.cfg和myid文件。

7、 所有机器上启动ZooKeeper。
/usr/local/zookeeper/apache-zookeeper-3.7.1-bin/bin目录下有启动脚本

[root@localhost bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED


**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/85e48246a8a1c332e63cfb65096abc19.png)
![img](https://img-blog.csdnimg.cn/img_convert/a34806e231463822e81f31d3824dd9f3.png)
![img](https://img-blog.csdnimg.cn/img_convert/28ba730c846d57a64ae7c830078c965a.png)
![img](https://img-blog.csdnimg.cn/img_convert/0d955087d96741f73fa4d18d462e47c5.png)
![img](https://img-blog.csdnimg.cn/img_convert/1eb8814c9dc45c0967c634c6d9b72ea5.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)**
![img](https://img-blog.csdnimg.cn/img_convert/af0ef8d4e14b8f2ce995c36581e5e899.png)

于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)**
[外链图片转存中...(img-D5kkO5NT-1712866500642)]

更多推荐