• 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

  • 相关阅读:
    多线程在javaweb中的应用
    Class类是什么? Class.forName()是干什么的?
    JDBC学习笔记
    jsp
    VMware虚拟机中red hat linux ping不通宿主物理主机原因
    数据库设计原则(装载)
    PHP实现正态分布的累积概率函数
    如何正确配置 Nginx + PHP ???
    PHP针对二维数组无限遍历变形研究
    easyui常用控件及参数说明
  • 原文地址:https://www.cnblogs.com/zhangzl419/p/13200325.html
Copyright © 2020-2023  润新知