1.从官网下载程序包。

2.解压。

[dev@localhost software]$ tar xzvf zookeeper-3.4.6.tar.gz

3.进入zookeeper文件夹后创建data文件夹。

[dev@localhost software]$ cd zookeeper-3.4.6
[dev@localhost software]$ mkdir data
[dev@localhost software]$ cd data
[dev@localhost software]$ touch myid




        myid这个文件必须创建。不然启动的时候会跑出以下的异常。

[dev@localhost bin]$ ./zkServer.sh start-foreground
JMX enabled by default
Using config: /home/dev/zookeeper/zookeeper1/bin/../conf/zoo.cfg
2015-03-12 16:06:38,155 [myid:] - INFO [main:QuorumPeerConfig@101] - Reading configuration from: /home/dev/zookeeper/zookeeper1/bin/../conf/zoo.cfg
2015-03-12 16:06:38,159 [myid:] - INFO [main:QuorumPeerConfig@334] - Defaulting to majority quorums
2015-03-12 16:06:38,161 [myid:] - ERROR [main:QuorumPeerMain@85] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /home/dev/zookeeper/zookeeper1/bin/../conf/zoo.cfg
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:121)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
Caused by: java.lang.IllegalArgumentException: /home/dev/zookeeper/zookeeper1/data/myid file is missing
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:344)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:117)
... 2 more
Invalid config, exiting abnormally

        myid文件中必需要有内容,其值相应zoo.cfg中server的id。有点绕,我也是试了好多次才配好的。也就说,假如集群的配置例如以下,那问题来了,怎么区分当前启动的zookeeper是哪一个呢?就是通过myid文件来区分的。第1个zookeeper服务的myid文件的内容就是1。其他就以此类推了。假设myid配错了,后果非常严重——zookeeper服务起不来。O(∩_∩)O哈哈~,而且报以下的异常。

server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
[dev@localhost bin]$  ./zkServer.sh start-foreground
JMX enabled by default
Using config: /home/dev/zookeeper/zookeeper2/bin/../conf/zoo.cfg
2015-03-12 16:09:35,422 [myid:] - INFO [main:QuorumPeerConfig@101] - Reading configuration from: /home/dev/zookeeper/zookeeper2/bin/../conf/zoo.cfg
2015-03-12 16:09:35,426 [myid:] - INFO [main:QuorumPeerConfig@334] - Defaulting to majority quorums
2015-03-12 16:09:35,434 [myid:0] - INFO [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 3
2015-03-12 16:09:35,434 [myid:0] - INFO [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 0
2015-03-12 16:09:35,435 [myid:0] - INFO [main:DatadirCleanupManager@101] - Purge task is not scheduled.
2015-03-12 16:09:35,455 [myid:0] - INFO [main:QuorumPeerMain@127] - Starting quorum peer
2015-03-12 16:09:35,472 [myid:0] - INFO [main:NIOServerCnxnFactory@94] - binding to port 0.0.0.0/0.0.0.0:2182
2015-03-12 16:09:35,500 [myid:0] - INFO [main:QuorumPeer@913] - tickTime set to 2000
2015-03-12 16:09:35,501 [myid:0] - INFO [main:QuorumPeer@933] - minSessionTimeout set to -1
2015-03-12 16:09:35,501 [myid:0] - INFO [main:QuorumPeer@944] - maxSessionTimeout set to -1
2015-03-12 16:09:35,502 [myid:0] - INFO [main:QuorumPeer@959] - initLimit set to 10
2015-03-12 16:09:35,519 [myid:0] - ERROR [main:QuorumPeer@171] - Setting LearnerType to PARTICIPANT but 0 not in QuorumPeers.
2015-03-12 16:09:35,530 [myid:0] - INFO [main:QuorumPeer@429] - currentEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation
2015-03-12 16:09:35,591 [myid:0] - INFO [main:QuorumPeer@444] - acceptedEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation
2015-03-12 16:09:35,598 [myid:0] - ERROR [main:QuorumPeerMain@89] - Unexpected exception, exiting abnormally
java.lang.RuntimeException: My id 0 not in the peer list
at org.apache.zookeeper.server.quorum.QuorumPeer.startLeaderElection(QuorumPeer.java:479)
at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:411)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:151)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:111)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)

4.改动zoo.cfg文件。

在zookeeper/conf/zoo.cfg改动dataDir的文件夹,就是我们在第2步中创建的data文件夹。

在文件最后加入zookeeper集群节点地址。

server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

5.其他节点配置。

好了,上面已经配置好了1个zookeeper服务。然后直接copy刚才配好的zookeeper文件夹两份。改动data/myid文件中的id,zoo.cfg的dataDir。clientPort。

6.然后分别启动zookeeper。

ZooKeeper伪集群环境搭建好了,不然让它静静地在那里跑着,继续捣鼓它。

。。。。

ZooKeeper伪集群环境搭建的更多相关文章

  1. zookeeper伪集群的搭建

    由于公司服务器数量的限制,我们往往没有那么多的服务器用来搭建zookeeper的集群,所以产生了伪集群的搭建,也就是将多个zookeeper搭建在同一台机器上. 准备工作: 1,一台服务器,我们这里用 ...

  2. 【Zookeeper】集群环境搭建

    一.概述 1.1 Zookeeper的角色 1.2 Zookeeper的读写机制 1.3 Zookeeper的保证 1.4 Zookeeper节点数据操作流程 二.Zookeeper 集群环境搭建 2 ...

  3. Hadoop+HBase+ZooKeeper分布式集群环境搭建

    一.环境说明 集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以相互ping通,下面举例说明,配置节点IP分配如下: Hostname IP ...

  4. zookeeper 单机. 集群环境搭建

    zookeeper分布式系统中面临的很多问题, 如分布式锁,统一的命名服务,配置中心,集群的管理Leader的选举等 环境准备 分布式系统中各个节点之间通信,Zookeeper保证了这个过程中 数据的 ...

  5. ZooKeeper伪集群的搭建(Windows)

    首先下载 zookeeper 地址:https://www.apache.org/dyn/closer.cgi/zookeeper/ 1.下载完成解压后修改文件夹名字为zookeeper1,然后删除c ...

  6. Hadoop 学习之路(四)—— Hadoop单机伪集群环境搭建

    一.前置条件 Hadoop的运行依赖JDK,需要预先安装,安装步骤见: Linux下JDK的安装 二.配置免密登录 Hadoop组件之间需要基于SSH进行通讯. 2.1 配置映射 配置ip地址和主机名 ...

  7. zookeeper集群环境搭建详细图文教程

    zookeeper集群环境搭建详细图文教程 zhoubang @ 2018-01-02 [文档大纲] 友情介绍 软件环境 注意点 环境安装 1. 新建用于存储安装包以及软件安装的目录 2. 下载安装z ...

  8. 【Hadoop离线基础总结】zookeeper的介绍以及集群环境搭建、网络编程和RPC的简单了解

    ZooKeeper的介绍以及集群环境搭建.网络编程和RPC的简单了解 ZooKeeper介绍 概述 ZooKeeper是一个分布式协调服务的开源框架,主要用来解决分布式集群中应用系统的一致性问题.例如 ...

  9. win10环境下搭建zookeeper伪集群

    一.下载zookeeper https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 这里笔者下载的是zookeeper-3.3.6 二.配置zoo ...

随机推荐

  1. js 数组克隆

    在JS中,对于对象类型的变量的引用是通过类似C之类的"指针"的方式来操作的,及假设多个变量引用同一个对象,则随意一个变量对对象的操作都会影响到其他的变量. 这个可能不是非常明确,以 ...

  2. uninstall OpenJDK9

    sudo apt--jre openjdk--jdk ///要慎用auto命令,会把所有的软件包删掉 https://www.linuxidc.com/Linux/2017-11/148941.htm ...

  3. SQL的优化技巧

    一.一些常见的SQL实践 (1)负向条件查询不能使用索引 select * from order where status!=0 and stauts!=1 not in/not exists都不是好 ...

  4. BZOJ 3238 后缀数组+单调栈

    单调栈跑两遍求出来 ht[i]为最小值的那段区间 //By SiriusRen #include <cstdio> #include <cstring> #include &l ...

  5. 了解和解决SQL SERVER阻塞问题(copy)

    http://support.microsoft.com/kb/224453 Summary In this article, the term "connection" refe ...

  6. 【转】解析<button>和<input type="button"> 的区别

    一.定义和用法 <button> 标签定义的是一个按钮. 在 button 元素内部,可以放置文本或图像.这是<button>与使用 input 元素创建的按钮的不同之处. 二 ...

  7. Python 接口类或抽象类 反射

    # 抽象类或者接口类,制定规范,统一方法名 # # 抽象类或者接口类,制定规范,统一方法名 from abc import ABCMeta,abstractmethod class Payrole(m ...

  8. mysql 导入数据库 命令操作

    window下 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u dbuser -p dbname > dbname.sql ...

  9. Js基础知识(作用域、特殊函数---自调、回调、作为值的函数)

    15.作用域 概念: 规定变量或函数的可被访问的范围和生命周期 分类: 全局作用域 -就是指当前整个页面环境: 局部作用域(函数作用域) -就是指某个函数内部环境 l 变量的作用域 全局变量 - 定义 ...

  10. Hibernate框架学习(七)——多对多关系

    一.关系表达 1.表中的表达 2.实体中的表达 3.orm元数据中的表达 在User.hbm.xml中添加: 在Role.hbm.xml中添加(与上相反): 二.操作关联属性 1.保存员工及角色 pu ...