前一篇文章介绍了Zookeeper的单机模式的安装及应用,但是Zookeeper是为了解决分布式应用场景的,所以通常都会运行在集群模式下。今天由于手头机器不足,所以今天打算在一台机器上部署三个Zookeeper服务来组成一个Zookeeper集群。这里解压Zookeeper的安装包到/opt目录下,这里用三个目录来代表三个Zookeeper实例,分别是/opt/zookeeper1,/opt/zookeeper2和/opt/zookeeper3.

1. 首先编辑每个Zookeeper目录下的conf/zoo.cfg文件。三个配置配置文件的内容分别如下

  1. $ cat /opt/zookeeper1/conf/zoo.cfg
  2. tickTime=2000
  3. dataDir=/opt/zookeeper1/data
  4. clientPort=2181
  5. initLimit=10
  6. syncLimit=5
  7. server.1=127.0.0.1:2881:3881
  8. server.2=127.0.0.1:2882:3882
  9. server.3=127.0.0.1:2883:3883
  1. $ cat /opt/zookeeper2/conf/zoo.cfg
  2. tickTime=2000
  3. dataDir=/opt/zookeeper2/data
  4. clientPort=2182
  5. initLimit=10
  6. syncLimit=5
  7. server.1=127.0.0.1:2881:3881
  8. server.2=127.0.0.1:2882:3882
  9. server.3=127.0.0.1:2883:3883
  1. $ cat /opt/zookeeper3/conf/zoo.cfg
  2. tickTime=2000
  3. dataDir=/opt/zookeeper3/data
  4. clientPort=2183
  5. initLimit=10
  6. syncLimit=5
  7. server.1=127.0.0.1:2881:3881
  8. server.2=127.0.0.1:2882:3882
  9. server.3=127.0.0.1:2883:3883

其中有几点需要注意
* dataDir: 三个Zookeeper实例的dataDir目录要区别开,这里分别指定到各个Zookeeper实例目录下的data目录。
* clientPort: 定义Zookeeper客户端连接Zookeeper服务端时使用的端口,这里因为是在一台机器上做的集群,所以三个实例的端口要区分开。
* server.: 定义Zookeeper集群的各个实例的的ip和端口,这里因为是在一台机器上做的集群,所以IP都定义的是127.0.0.1,但是后面的端口要区分开。

2. 创建data目录和实例id文件

  1. mkdir /opt/zookeeper1/data
  2. mkdir /opt/zookeeper2/data
  3. mkdir /opt/zookeeper3/data
  4. echo 1 > /opt/zookeeper1/data/myid
  5. echo 2 > /opt/zookeeper2/data/myid
  6. echo 3 > /opt/zookeeper3/data/myid

这里要注意需要在每个Zookeeper的dataDir目录下创建myid文件,内容是记录各个Zookeeper的实例ID。

3. 启动Zookeeper服务
分别进入各个Zookeeper的bin目录,然后运行“./zkServer.sh start”来启动一个Zookeeper服务。

4. 客户端连接
随便进入一个Zookeeper的bin目录,然后运行下面的命令来分别连接Zookeeper服务。

  1. ./zkCli.sh -server 127.0.0.1:2181
  2. ./zkCli.sh -server 127.0.0.1:2182
  3. ./zkCli.sh -server 127.0.0.1:2183

在其中的一个client上创建一个znode节点

  1. create /mykey myvalue

然后在别的client上查看新创建zonde节点

  1. get /mykey

5. 查看Zookeeper状态
启动Zookeeper之后,由于Zookeeper自己会有一套leader的选举算法,所以此时如果想知道那个Zookeeper是leader可以在各个Zookeeper的bin目录运行“./zkServer.sh status”命令来查看。

如果是Leader

  1. $ ./zkServer.sh status
  2. JMX enabled by default
  3. Using config: /opt/zookeeper1/bin/../conf/zoo.cfg
  4. Mode: leader

如果不是Leader

  1. $ ./zkServer.sh status
  2. JMX enabled by default
  3. Using config: /opt/zookeeper3/bin/../conf/zoo.cfg
  4. Mode: follower

此时可以把leader的那个节点停了,然后再看查看其它两个Zookeeper实例,此时剩下的两个Zookeeper实例就会再选举出一个leader。

Zookeeper实战之单机集群模式的更多相关文章

  1. Presto单机/集群模式安装笔记

    Presto单机/集群模式安装笔记 一.安装环境 二.安装步骤 三.集群模式安装: 3.1 集群模式修改配置部分 3.1.1 coordinator 节点配置. Node172配置 3.1.2 nod ...

  2. 10. ZooKeeper之搭建伪集群模式。

    转自:https://blog.csdn.net/en_joker/article/details/78673456 在集群和单机两种模式下,我们基本完成了分别针对生产环境和开发环境ZooKeeper ...

  3. Spring集成Jedis(不依赖spring-data-redis)(单机/集群模式)(待实践)

    Jedis是Redis的Java客户端,Spring将Jedis连接池作为一个Bean来配置.如果在Spring Data的官网上可以发现,Spring Data Redis已经将Jedis集成进去了 ...

  4. Zookeeper简介及单机、集群模式搭建

    1.zookeeper简介 一个开源的分布式的,为分布式应用提供协调服务的apache项目. 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务. 设计非常易于编程,它使用的是 ...

  5. Zookeeper实战之嵌入式执行Zookeeper集群模式

    非常多使用Zookeeper的情景是须要我们嵌入Zookeeper作为自己的分布式应用系统的一部分来提供分布式服务.此时我们须要通过程序的方式来启动Zookeeper.此时能够通过Zookeeper ...

  6. Windows环境下Zookeeper的安装和部署(单机模式和伪集群模式)

    第一部分:单机模式 1)下载地址:http://www.pirbot.com/mirrors/apache/zookeeper/,建议下载stable版本 2)解压缩 将下载好的压缩包解压到指定目录, ...

  7. 搞懂分布式技术5:Zookeeper的配置与集群管理实战

    搞懂分布式技术5:Zookeeper的配置与集群管理实战 4.1 配置文件 ZooKeeper安装好之后,在安装目录的conf文件夹下可以找到一个名为“zoo_sample.cfg”的文件,是ZooK ...

  8. zookeeper(单机/集群)安装与配置

    一.安装与单机配置 1.下载: wget http://archive.apache.org/dist/zookeeper/stable/zookeeper-3.4.6.tar.gz 如果网站下载不了 ...

  9. Dubbo(三) 安装Zookeeper 单机-集群

    一.下载zookeeper zookeeper下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/点击下载 二.启动配置 选择合适版本下载后解压到 ...

随机推荐

  1. SQL基础知识

    一.检索前5行数据 1.SQL Server和Access中使用SELECT时,可以使用TOP关键字来限制最多返回多少行 SELECT TOP 5 prod_name FROM Products; 2 ...

  2. DTCMS视频模版更改,

    1.去掉style.css中视频的高度 .video-box{ position:relative; width:100%; height:473px; _clear:both; _display:i ...

  3. jQuery实现页内查找相关内容

    当需要在页面中查找某个关键字时,一是可以通过浏览器的查找功能实现,二是可以通过前端脚本准确查找定位,本文介绍通过jQuery实现的页面内容查找定位的功能,并可扩展显示查找后的相关信息. 本文以查找车站 ...

  4. CentOS7安装性能监控系统

    目录 系统描述. 开发环境. 开始之前. 安装influxdb数据库. 安装collectd 安装Grafana FAQ       influxdb的web界面没反应.   系统描述 想打造 New ...

  5. WPF简单的口算案例

    前几天在博客园,看到有博友利用Winform做了一个口算案例,于是我想把它移植在WPF程序中.Winform程序:http://www.cnblogs.com/ImYZF/p/3345452.html ...

  6. 【转】perl如何避免脚本在windows中闪一下就关闭

    写好了perl程序,运行后,准备等待结果输出时,结果双击后,看到屏幕闪了一下,然后什么都没有了,根本没有机会然你看到输出的结果 当你刚开始学习perl的时候,写好了程序,准备兴高采烈的等待结果输出时, ...

  7. 使用公钥登录SSL

    在本地生成密钥对 ssh-keygen -t rsa 如果不想设置密码,可以直接点击回车. 如果你想使用DSA可以用-t DSA替换. 确保远程计算机上用户目录下有.ssh目录 确保你的连接服务器上的 ...

  8. drop column与set unused

    8i以前,如果需要删除表中的列,需要删除表然后重新建.现在,但我们需要删除一个列时,可以有以下两种方法: Logical Delete Physical Delete Logical Delete(逻 ...

  9. RAC环境下SCAN IP可以PING通,1521端口也可以TELNET,但是无法建立数据库连接

    昨天用户请求帮助处理一个问题:有个厂家需要连某个业务系统的数据库,网络上已经开通了权限,SCAN IP可以PING通,测试TELNET 1521端口也是正常.但是想通过SQLPLUS连接,总是会提示连 ...

  10. mysql子查询优化

    ,,,) ) LIMIT 第一种方式in where:2000ms SELECT COUNT(*) AS tp_count FROM xxx_b2c_orders o ,,,) and from xx ...