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. pandas常用操作命令大全

    网上的有个别不对 实际敲了一下  有补充了点常用的环境IDE anaconda  python3.7 在这个速查手册中,我们使用如下缩写: df:任意的Pandas DataFrame对象 s:任意的 ...

  2. Linux 修改文件夹的用户组权限

    将ubsadm文件夹所属用户修改为userschown -R ubsadm:users /home/ubsadm 此命令将用户123的用户组改为rootusermod -g 123 root

  3. Redis监控之redis-stat安装与详解

    一.安装环境 安装编译环境.ruby运行环境.git代码 yum install gcc-c++ yum -y install ruby-devel yum install ruby yum inst ...

  4. 安装vue模板时,选择webpack-simple还是Webpack?

    选用模板常用的是webpack与webpack-simple.webpack-simple是基于Webpack@2.1.0-beta.25进行配置的版本,而webpack模板则是基于Webpack ^ ...

  5. java多线程面试题整理及答案(2019年)

    1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对 运算密集型任务提速.比如,如果一个线程完 ...

  6. 强悍的Python读取大文件的解决方案

    这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合读取大文件. 1. read() 接口的问题 f =open(filename, ...

  7. scikit-learn机器学习(二)逻辑回归进行二分类(垃圾邮件分类),二分类性能指标,画ROC曲线,计算acc,recall,presicion,f1

    数据来自UCI机器学习仓库中的垃圾信息数据集 数据可从http://archive.ics.uci.edu/ml/datasets/sms+spam+collection下载 转成csv载入数据 im ...

  8. 使用XCode7打包动态库(Framework)

    iOS中的静态库和动态库 概念 静态库(Static Library)以 .a 为后缀,它是你的源码的实现.m文件编译而成的二进制文件集合,需要配合上暴漏的.h文件使用,它在引用链接时拷贝至可执行文件 ...

  9. php错误机制总结

    转 http://www.cnblogs.com/yjf512/p/5314345.html

  10. js 匿名函数 js-函数定义方法

    1.任何函数都是有返回值的,没有返回值的,在某些语言里称之为过程例如PL/SQL 2.js中的函数如果没有return 关键字指明给出的返回值,那么当调用完函数后,会返回“undefined" ...