zookeeper安装过程中遇到的问题

zk我很早就已经接触过了,但是对它理解的并不深刻。最近这两天,我拉出了以前安装zk时候写的博客文章,重新配置了一遍zk,这次对着自己以前的写的博文,在看了几篇网上专家们写的博客,对zk的安装过程理解的更加清楚了,对zk的配置文件zoo.cfg中各个配置项的含义也理解的更加清晰了。

zk有三种安装方式:单机方式、伪分布式方式、分布式方式。我采用的是伪分布式方式,但是我在做伪分布式的安装过程中仔细的理解了 伪分布式安装和分布式安装的区别,通过对配置项的深入理解,我知道了如何将一个伪分布式安装的zk集群转换为真正分布式集群,配置伪分布式和真实分布式各自的注意事项。

zookeeper安装过程中出现了,两个问题,记录一下,可能会帮助到很多更多的朋友,希望能减少大家学习路上的困难。

我的安装目录

/usr/local/zookeeper

                           |--zk1

                           |--zk2

                           |--zk3

1、QuorumPeerConfig$ConfigException: Address unresolved: 192.168.75.128:7771

====================================================================

这个错误是因为  server.1的端口号后面有空格的缘故。

用cat -A logs/zookeeper-root-server-localhost.localdomain.out 查看后发现,server.1这一行配置的最后一个端口号后面有一个空格,这是导致错误的原因:

$
server.1=192.168.75.128:8881:7771 $
server.2=192.168.75.128:8882:7772$
server.3=192.168.75.128:8883:7773$
$
$
server.1=192.168.75.128:8881:7771 $
server.2=192.168.75.128:8882:7772$
server.3=192.168.75.128:8883:7773$
$

修改之后,重新启动,成功了。细微的两个小空格都会导致启动失败。

2、Starting zookeeper ... already running as process 2930

=================================================

当我执行 ./zk1/bin/zkServer.sh start  启动了zk1之后,然后执行 ./zk2/bin/zkServer.sh  start的时候爆出了这个错误,我此时非常困惑,接着,我想试试启动zk3看看啥情况,我就继续执行 ./zk3/bin/zkServer.sh start,这时候,我非常难过地发现 zk3也爆出了同样的错误。

我简直有点无语了。

我看了pid 2930,jps查看一下,发现zk1启动之后的pid恰好是2930,那么说明zk2、zk3在启动的时候,被当成zk1来启动了。

无奈之下,我把错误信息贴到百度搜索框中,搜出了好多文章,看了两个文章之后,好像与data/zookeeper.pid文件有关系,于是,我去cat了zk2/data/zookeeper.pid,发现这里记录的pid和zk1启动之后的pid并不是同一个pid啊。

后来,我突然间就清醒了,是不是我的zk2和zk3的data目录没有配置好。

一看,果然如此。zk2和zk3配置文章中的 data=/usr/local/zookeeper/zk1/data,我马上修改了zk2 和 zk3的data到自己根目录下的data。

此时,我重新启动zk2和zk3,都顺利启动起来了。

所以,当出现这个错误的时候,大家不妨先查看一下  data目录配置是否正确。这是一个诊断方向。

我在解决这两个错误的时候,还是参考了其他专家的文章的,感谢素未谋面的网上专家。

参考资料:

问题2:https://www.cnblogs.com/dongxiucai/p/10011177.html

猜你喜欢

转载自www.cnblogs.com/zhangzl419/p/13200325.html