zoukankan      html  css  js  c++  java
  • zookeeper linux分布式部署

    安装包下载地址:http://mirror.bit.edu.cn/apache/zookeeper,记住要下载那个bin的不要下tar.gz包不然即使你安装了也会报错误: 找不到或无法加载主类org.apache.zookeeper.server.quorum.QuorumPeerMain,你安装了也无法起来zk

    wget   http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz

    注意:在安装zk之前请先确保要部署的三台机器均已经安装JDK.

    zk服务治理实现模型: 注册中心,生产者,消费者,注册中心注册了关于生产消费者的所有信息简单来说就是想要实现治理服务,必须要知道哪台机器提供什么服务,该找谁,也就ip映射服务之间的映射关系是怎样的,

    zk通过心跳机制可以检测挂掉的机器并将挂掉机器的ip和服务对应关系从列表中删除

    tar  -xvf  apache-zookeeper-3.5.6.tar.gz && cd  apache-zookeeper-3.5.6.tar.gz/conf

    将zoo_sample.cfg这个文件复制为zoo.cfg (必须是这个文件名):

    cp zoo_sample.cfg zoo.cfg

    zoo.cfg参数解释:

    打开zoo.cfg,可以看到默认的一些配置。

      • tickTime 
        时长单位为毫秒,为zk使用的基本时间度量单位。例如,1 * tickTime是客户端与zk服务端的心跳时间,2 * tickTime是客户端会话的超时时间。 
        tickTime的默认值为2000毫秒,更低的tickTime值可以更快地发现超时问题,但也会导致更高的网络流量(心跳消息)和更高的CPU使用率(会话的跟踪处理)。
      • clientPort 
        zk服务进程监听的TCP端口,默认情况下,服务端会监听2181端口。
      • dataDir 
        无默认配置,必须配置,用于配置存储快照文件的目录。如果没有配置dataLogDir,那么事务日志也会存储在此目录;注意:如果想配置集群的话,请在clientPort下面添加服务器的ip

    注意:如果想配置集群的话,请在clientPort下面添加服务器的ip
    server.1=192.168.110.151:2888:3888
    server.2=192.168.110.152:2888:3888
    server.3=192.168.110.153:2888:3888

    vim zoo.cfg

    修改此三处:

    接下来和重要的一步:

    在每台机器刚才zoo.cfg dataDir路径下的data目录下创建myid :

    touch  myid 

    echo  1 > myid   这句在192.168.110.151执行

    echo 2 > myid    这句在192.168.110.152

    echo 3  > myid   这句在192.168.110.153

    这里的1,2,3其实就是server.后面带的1,2,3标识符你也可以自己起别的:

    server.1=192.168.110.151:2888:3888
    server.2=192.168.110.152:2888:3888
    server.3=192.168.110.153:2888:3888

    在创建完后配置zk 环境以及配置的环境变量告诉zk 引用config 下刚才你cp 的zoo.cfg配置,这个执行命令行执行也可以,直接配置到/ect/profile也可以,如果这样记得source 激活

    export ZOOKEEPER_INSTALL=/usr/local/apache-zookeeper-3.5.5-bin
    export PATH=$PATH:$ZOOKEEPER_INSTALL/bin

    以上操作每台机器都要来一遍

    此外还要关闭防火墙或者开放zkport这里为了节省步骤我直接关闭防火墙了:

    systemctl stop firewalld

    最后逐个启动每台机器:

    cd  usr/local/apache-zookeeper-3.5.5-bin/bin

    执行:

    sh zkServer.sh start 

    启动状态查看:

    sh  zkServer.sh status

    follower:

     

    如果启动失败就是这个myid 文件不存在导致的在logs目录下可以看见错误提示:

    失败错误提示:

    [root@hostuser3 bin]# sh zkServer.sh start
    /bin/java
    ZooKeeper JMX enabled by default
    Using config: /usr/local/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
    Starting zookeeper ... FAILED TO START

    日志错误提示:

    root@hostuser3 logs]# ll
    total 4
    -rw-r--r--. 1 root root 1385 Jan 4 23:42 zookeeper-root-server-hostuser3.out
    [root@hostuser3 logs]# cat zookeeper-root-server-hostuser3.out
    2020-01-04 23:42:30,720 [myid:] - INFO [main:QuorumPeerConfig@133] - Reading configuration from: /usr/local/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
    2020-01-04 23:42:30,726 [myid:] - INFO [main:QuorumPeerConfig@385] - clientPortAddress is 0.0.0.0/0.0.0.0:2181
    2020-01-04 23:42:30,726 [myid:] - INFO [main:QuorumPeerConfig@389] - secureClientPort is not set
    2020-01-04 23:42:30,730 [myid:] - ERROR [main:QuorumPeerMain@89] - Invalid config, exiting abnormally
    org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /usr/local/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:154)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:113)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:82)
    Caused by: java.lang.IllegalArgumentException: myid file is missing
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.checkValidity(QuorumPeerConfig.java:734)
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.setupQuorumPeerConfig(QuorumPeerConfig.java:605)
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:420)
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:150)
    ... 2 more
    Invalid config, exiting abnormally

  • 相关阅读:
    openstack 网络架构 nova-network + neutron
    编程算法
    16周(项目四 动态数组)
    iptables惹的祸
    【剑指offer】和为定值的连续正数序列
    root用户改动普通用户文件
    Android学习四、Android中的Adapter
    初探swift语言的学习笔记四(类对象,函数)
    crtmpserver 基本流程分析
    八大排序算法总结
  • 原文地址:https://www.cnblogs.com/SunshineKimi/p/12150624.html
Copyright © 2011-2022 走看看