Zookeeper配置文件,启动报错问题详解

zookeeper配置文件详解

Zookeeper是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。

预装的配置文件zoo_sample.cfg下面默认有五个属性,分别是:

  • 1.tickTime
    心跳间隔,单位是毫秒,系统默认是2000毫秒,也就是间隔两秒心跳一次。
    tickTime的意义:客户端与服务器或者服务器与服务器之间维持心跳,也就是每个tickTime时间就会发送一次心跳。通过心跳不仅能够用来监听机器的工作状态,还可以通过心跳来控制Flower跟Leader的通信时间,默认情况下FL的会话时常是心跳间隔的两倍。

  • 2.initLimit
    集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。

  • 3.syncLimit
    集群中flower服务器(F)跟leader(L)服务器之间的请求和答应最多能容忍的心跳数。

  • 4.clientPort
    客户端连接的接口,客户端连接zookeeper服务器的端口,zookeeper会监听这个端口,接收客户端的请求访问,端口默认是2181。

  • 5.dataDir
    该属性对应的目录是用来存放myid信息跟一些版本,日志,跟服务器唯一的ID信息等。
    在集群Zookeeper服务在启动的时候,会回去读取zoo.cfg这个文件,从这个文件中找到这个属性然后获取它的值也就是dataDir 的路径,它会从这个路径下面读取myid这个文件,从这个文件中获取要启动的当前服务器的地址。

集群信息的配置:

在配置文件中,配置集群信息是存在一定的格式:service.N =YYY: A:B
N:代表服务器编号(准确对应对应服务器中myid里面的值)
YYY:服务器地址
A:表示 Flower 跟 Leader的通信端口,简称服务端内部通信的端口(默认2888)
B:表示是选举端口(默认是3888)
例如:server.1=master:2888:3888

配置文件参考

tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
# 配置数据存储路径
????
# 配置日志文件路径
????
# 配置集群列表
server.1=????
server.2=????
server.3=????

image-20211109173652280

zookeeper启动报错汇总

image-20211109171117215

无法启动问题汇总

1. 全节点无法启动

1.1 查看JDK是否安装

因为zookeeper的运行需要JVM环境,可以使用java -version命令来验证一下

image-20211109172850885

如上,已安装,排除JDK导致的问题

1.2 防火墙是否关闭
# 关闭防火墙
systemctl stop firewalld 
# 查看防火墙状态
systemctl status firewalld 

image-20211109175204514

2. 部分节点可启动

比如:master无法启动,slave1,2均可正常启动

2.1 查看端口是否占用
# 查看端口
netstat -lnp|grep 2181

lsof -i:2181

# 以上任意一个命令都可以查看

image-20211109174528194
通过上述任一命令即可查看zookeeper的端口2181是否已经被占用(这部分,有可能大家已经改用其它端口,根据个人的实际操作来定),如下所示,可以看到,2181端口真被占用的,出现这种情况,如果我们在zoo.cfg文件中设置的Time时间短的话,也会使zookeeper启动失败,这里我建议如果2181端口被占用,尽可能kill掉,由图可知进程号是1553,那么我们便kill掉这个进程。

# 写法 kill 进程号

kill -9 2181
2.2 查看myid文件

zk节点起不来,80%以上的概率问题是出在这里的,首先注意myid文件中不能写0,起步为1,其次myid文件与zoo.cfg配置文件中的服务器编号需一一对应,我的问题是主节点的myid文件忘记写编号,现在已经解决,如下已完成启动

image-20211109173140743

3. 部分节点完全无法启动

遇到这种情况,我们可以先启动zookeeper的另外几个节点,等把其它节点启动好了,这个无法启动的节点会自动启动好。

综上所述,几种情况应该是完全可以解决zookeeper无法启动的问题(ps:如果还是不行,就要看看是不是安装zookeeper的步骤有错误)

@Author:懒羊羊

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐