1. zoo.cfg配置文件如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes. #dataDir=/usr/local/var/run/zookeeper/data
dataDir=/Users/userName/Documents/zookeeper/dataDir
dataLogDir=/Users/userName/Documents/zookeeper/dataLogDir # the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1 server.1=localhost:2881:3881
server.2=localhost:2882:3882
server.3=localhost:2883:3883

2. 复制zoo.cfg文件命名为zoo1.cfg, 改动dataDir, dataLogDir和clientPort三个参数

dataDir=/Users/userName/Documents/zookeeper/dataDir1
dataLogDir=/Users/userName/Documents/zookeeper/dataLogDir1
clientPort=2181

3. 复制zoo.cfg文件命名为zoo2.cfg, 改动dataDir, dataLogDir和clientPort三个参数

dataDir=/Users/userName/Documents/zookeeper/dataDir2
dataLogDir=/Users/userName/Documents/zookeeper/dataLogDir2
clientPort=2182

4. 再次复制zoo.cfg文件命令为zoo3.cfg, 改动dataDir, dataLogDir和clientPort三个参数

dataDir=/Users/userName/Documents/zookeeper/dataDir3
dataLogDir=/Users/userName/Documents/zookeeper/dataLogDir3
clientPort=2183

5. 在配置的/Users/userName/Documents/zookeeper/目录下创建dataDir1, dataDir2, dataDir3, dataLogDir1, dataLogDir2, dataLogDir3目录

6. 在dataDir1 文件夹中创建文件myid, 内容填1 (和server.1=localhost:2881:3881中的1一致即可)

在dataDir2 文件夹中创建文件myid, 内容填2

在dataDir3文件夹中创建文件myid, 内容填3

注: myid文件中的内容和配置中的server.X的X一致即可

7. 启动三个服务

$ zkServer start zoo1.cfg
$ zkServer start zoo2.cfg
$ zkServer start zoo3.cfg

8. 通过zkServer status命令查看各自的角色

$ zkServer status zoo1.cfg
$ zkServer status zoo2.cfg
$ zkServer status zoo3.cfg

结果

$ zkServer status zoo1.cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo1.cfg
Mode: follower
$ zkServer status zoo2.cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo2.cfg
Mode: leader
$ zkServer status zoo3.cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo3.cfg
Mode: follower

  

可看出, 选举的结果为: server2:leader(master); server1、server3:follower(slave)

注意事项:

1. 第4步中的几个文件夹需要提前创建, 否则可能报错

2. 注意cfg中的配置(server.1=localhost:2881:3881), localhost别写错了, 2881端口别写成2181了

3. 其他错误可参见: https://blog.csdn.net/xiewendong93/article/details/50500471

转自:https://blog.csdn.net/pansanday/article/details/80473281

[转] zookeeper 本地启动多节点的更多相关文章

  1. Hadoop生态圈-zookeeper本地搭建以及常用命令介绍

    Hadoop生态圈-zookeeper本地搭建以及常用命令介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.下载zookeeper软件 下载地址:https://www.ap ...

  2. 使用小记:Zookeeper中动态改变节点的功能

    Zookeeper 3.5+提供了reconfig功能实现动态配置节点,官方的说明是,"你再也不需要进行全部节点重启"就可以应用所有的修改: http://zookeeper.ap ...

  3. zookeeper有几种部署模式? zookeeper 怎么保证主从节点的状态同步?

    一.zookeeper的三种部署模式 Zookeeper 有三种部署模式分别是单机模式.伪集群模式.集群模式.这三种模式在不同的场景下使用: 单机部署:一般用来检验 Zookeeper 基础功能,熟悉 ...

  4. Apache ZooKeeper 服务启动源码解释

    转载:https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper-code/ 本文首先讲解了 Apache ZooKeeper 服 ...

  5. Zookeeper+Kafka的单节点配置

    Zookeeper+Kafka的单节点配置 环境描述:Ubuntu16.04 server系统,在系统上搭建Java环境,jdk的版本为1.8或更高,我的服务器IP地址为192.168.0.106. ...

  6. 解决Zookeeper无法启动的问题

    在启动zookeeper集群的单个zookeeper节点时总是报如下错误 [root@zookeeper1 zookeeper-3.4.5]# bin/zkServer.sh status JMX e ...

  7. 本地搭建3节点kubernetes

    kubernetes本地搭建版本选择 CentOS Linux release 7.7.1908 kubernetesVersion: v1.17.0 weave-kube:2.6.0 ceph/ce ...

  8. [源码解析] PyTorch 分布式之弹性训练(2)---启动&单节点流程

    [源码解析] PyTorch 分布式之弹性训练(2)---启动&单节点流程 目录 [源码解析] PyTorch 分布式之弹性训练(2)---启动&单节点流程 0x00 摘要 0x01 ...

  9. 最新版的Dubbo Admin 3.0 本地启动方式

    项目下载 项目地址:https://github.com/apache/dubbo-admin 如下图,使用git地址直接构建或者下载zip包构建源码都可以,我用的是下载的zip包, 项目架构说明 d ...

随机推荐

  1. python基础-垃圾回收机制

    垃圾回收 Python中的垃圾回收是以引用计数为主,分代收集为辅.引用计数的缺陷是循环引用的问题. 引用计数 原理:当一个对象的引用被创建或者复制时,对象的引用计数加1:当一个对象的引用被销毁时,对象 ...

  2. windows游戏编程键盘

    键盘 首先我们来看一下键盘常用消息 键盘的消息处理过程 键盘消息会有击键消息和字符消息 键盘消息的附加参数 wParam:非系统键的虚拟码 lParam: windows常用虚拟键码及对应的按键

  3. Git入门(待更)

    github是什么? 以下截取自百度百科 github: GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub. GitHub 于 ...

  4. centos7中oracle数据库安装和卸载

    参考: 完全命令行安装(验证可行):https://jingyan.baidu.com/article/90895e0f29c92164ec6b0bd1.html 存在疑问:是否需要jdk的配置(因为 ...

  5. python获取当前py文件的文件名或者当前工具箱的名字

    #########################import arcpy import osimport sys ########################################## ...

  6. Python 今天抽空学习了@Property

    1.@Property有啥用 1) @property使方法像属性一样调用 @property可以把一个实例方法变成其同名属性,以支持.号访问,它亦可标记设置限制,加以规范 2) @property成 ...

  7. 自己动手写Android插件化框架

    自己动手写Android插件化框架 转 http://www.imooc.com/article/details/id/252238   最近在工作中接触到了Android插件内的开发,发现自己这种技 ...

  8. VBA添加下拉菜单

    Sub createMenus() Dim cmdBar As CommandBar Dim cmdMenu As CommandBarPopup Dim cmdBtn As CommandBarBu ...

  9. c++ STL 最大值最小值

    #include <iostream>#include <algorithm>#include <deque> using namespace std; //二元谓 ...

  10. test20190510