zookeeper的安装与配置
这里不做集群,只做单台
大前提:安装java
这里省略
确定zookeeper的版本
到kafka官网确定版本
https://kafka.apache.org/downloads
这里我们选择2.7.2版本
下载源码
在包中的kafka-2.7.2-src------》gradle目录下,找到dependencies.gradle文件
在versions
部分可以找到zookeeper的版本
可以看到是3.5.9版本
下载与安装zookeeper
ZooKeeper是用Java编写的,需要安装Java运行环境,可以从zookeeper官网https://zookeeper.apache.org/获取zookeeper安装包,这里安装的版本是apache-zookeeper-3.5.9-bin.tar.gz。
将下载下来的安装包直接解压到一个路径下即可完成zookeeper的安装
$ wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
$ tar xf apache-zookeeper-3.5.9-bin.tar.gz -C /usr/local
$ mv /usr/local/apache-zookeeper-3.5.9-bin /usr/local/zookeeper
配置zookeeper
zookeeper安装到了/usr/local目录下,因此,zookeeper的配置模板文件为/usr/local/zookeeper/conf/zoo_sample.cfg,拷贝zoo_sample.cfg并重命名为zoo.cfg
重点配置如下内容:
$ cd /usr/local/zookeeper
$ cp conf/zoo_sample.cfg conf/zoo.cfg
$ vim conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data
clientPort=2181
#因为只是单台,所以不需要下面这些
#server.1=10.0.0.6:2888:3888
#server.2=10.0.0.7:2888:3888
#server.3=10.0.0.8:2888:3888
每个配置项含义如下:
-
tickTime
:zookeeper使用的基本时间度量单位,以毫秒为单位,它用来控制心跳和超时。2000表示2 tickTime。更低的tickTime值可以更快地发现超时问题。 -
initLimit
:这个配置项是用来配置Zookeeper集群中Follower服务器初始化连接到Leader时,最长能忍受多少个心跳时间间隔数(也就是tickTime)l -
syncLimit
:这个配置项标识Leader与Follower之间发送消息,请求和应答时间长度最长不能超过多少个tickTime的时间长度 -
dataDir
:必须配置项,用于配置存储快照文件的目录。需要事先创建好这个目录,如果没有配置dataLogDir,那么事务日志也会存储在此目录。 -
clientPort
:zookeeper服务进程监听的TCP端口,默认情况下,服务端会监听2181端口。 -
server.A=B:C:D
:其中A是一个数字,表示这是第几个服务器;B是这个服务器的IP地址;C表示的是这个服务器与集群中的Leader服务器通信的端口;D 表示如果集群中的Leader服务器宕机了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
不是集群,也就不需要下面这一步
$ mkdir /usr/local/zookeeper/data
$ vim /usr/local/zookeeper/data/myid
1
为了保证zookeeper集群配置的规范性,建议将zookeeper集群中每台服务器的安装和配置文件路径都保存一致。
添加zookeeper的环境变量
#设置zookeeper环境变量
$ vim /etc/profile
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
#生效
$ . /etc/profile
新建zookeeper启动脚本
$ vim /etc/init.d/zookeeper.service
#!/bin/bash
#description : Start Real Server
. /etc/rc.d/init.d/functions
case $1 in
start){
/usr/local/zookeeper/bin/zkServer.sh start
};;
stop){
/usr/local/zookeeper/bin/zkServer.sh stop
};;
status){
/usr/local/zookeeper/bin/zkServer.sh status
};;
esac
$ chmod +x /etc/init.d/zookeeper.service
$ systemctl daemon-reload
启动zookeeper集群
启动Zookeeper服务:
$ cd /usr/local/zookeeper/bin
$ ./zkServer.sh start
#因为加入了环境变量了,所以可以直接执行
$ zkServer.sh start
#或者
$ service zookeeper.service start
$ jps
23097 QuorumPeerMain
Zookeeper启动后,通过jps命令(jdk内置命令)可以看到有一个QuorumPeerMain标识,这个就是Zookeeper启动的进程,前面的数字是Zookeeper进程的PID。
本文来自博客园,作者:厚礼蝎,转载请注明原文链接:https://www.cnblogs.com/guangdelw/p/17282273.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下