美文网首页
zookeeper伪集群

zookeeper伪集群

作者: 吕志豪 | 来源:发表于2017-09-23 11:58 被阅读0次

伪集群模式

伪集群模式就是在单机环境下模拟集群的Zookeeper服务。

在zookeeper集群配置文件中,clientPort参数用来设置客户端连接zookeeper服务器的端口。server.1=IP1:2888:3888中,IP1指的是组成Zookeeper服务器的IP地址,2888为组成zookeeper服务器之间的通信端口,3888为用来选举leader的端口。由于伪集群模式中,我们使用的是同一台服务器,也就是说,需要在单台机器上运行多个zookeeper实例,所以我们必须要保证多个zookeeper实例的配置文件的client端口不能冲突。

下面简单介绍一下如何在单台机器上建立伪集群模式。首先将zookeeper-3.4.9.tar.gz分别解压到server1,server2,server3目录下:

tar -zxvf zookeeper-3.4.9.tar.gz  /home/lv/install/zookeeper/server1
tar -zxvf zookeeper-3.4.9.tar.gz /home/lv/install/zookeeper/server2
tar -zxvf zookeeper-3.4.9.tar.gz /home/lv/install/zookeeper/server3

然后在server1/data/目录下创建文件myid文件并写入“1”,同样在server2/data/,目录下创建文件myid并写入“2”,server3进行同样的操作。

下面分别展示在server1/conf/、server2/conf/、server3/conf/目录下的zoo.cfg文件:
server1/conf/zoo.cfg文件

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/lv/install/zookeeper/server1/data
dataLogDir=/home/lv/install/zookeeper/server1/datalog
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
maxClientCnxns=60

server2/conf/zoo.cfg文件

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/lv/install/zookeeper/server2/data
dataLogDir=/home/lv/install/zookeeper/server2/datalog
clientPort=2182
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
maxClientCnxns=60

server3/conf/zoo.cfg文件

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/lv/install/zookeeper/server3/data
dataLogDir=/home/lv/install/zookeeper/server3/datalog
clientPort=2183
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
maxClientCnxns=60

从上述三个代码清单可以发现,除了clientPort不同之外,dataDir和dataLogDir也不同。另外,不要忘记dataDir所对应的目录中创建的myid文件来指定对应的zookeeper服务器实例。
Zookeeper伪集群模式运行
当上述伪集群环境安装成功后就可以测试是否安装成功啦,我们可以尝尝鲜:
首先启动server1服务器:
cd server1/binbash zkServer.sh start

此时出现以下提示信息,表示启动成功:


打开zookeeper.out文件:

2017-09-23 11:38:59,765 [myid:1] - WARN  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@588] - Cannot open channel to 3 at election address /127.0.0.1:3890
java.net.ConnectException: 拒绝连接 (Connection refused)
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:562)
    at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:614)
    at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:843)
    at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:913)
2017-09-23 11:38:59,765 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumPeer$QuorumServer@167] - Resolved hostname: 127.0.0.1 to address: /127.0.0.1
2017-09-23 11:38:59,765 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:FastLeaderElection@852] - Notification time out: 60000

产生上述Waring信息是因为zookeeper服务的每个实例都拥有全局的配置信息,他们在启动的时候需要随时随地的进行leader选举,此时server1就需要和其他两个zookeeper实例进行通信,但是,另外两个zookeeper实例还没有启动起来,因此将会产生上述所示的提示信息。当我们用同样的方式启动server2和server3后就不会再有这样的警告信息了。

当三台服务器均成功启动后切换至server1/bin/目录下执行以下命令:

bash zkServer.sh status

终端出现以下提示信息:



说明server1服务器此时处于follower模式,同样切换至server2/bin目录下执行相同的命令,返回如下结果:



说明server2被选举为leader。

相关文章

  • Zookeeper目录

    Zookeeper(windows)伪集群搭建 Zookeeper简介

  • zookeeper伪集群

    伪集群模式 伪集群模式就是在单机环境下模拟集群的Zookeeper服务。 在zookeeper集群配置文件中,cl...

  • zookeeper单机模式搭建(整理)

    zookeeper简介Zookeeper集群及伪集群模式搭建 下载安装文件zookeeper-3.4.11.tar...

  • zookeeper伪集群

    伪集群说明 在一台机器上,通过启动多个zookeeper服务,来实现伪集群。环境:Linux、zookeeper-...

  • zookeeper初印象

    炒鸡简单的zookeeper初印象总结。单机安装zookeeper集群请参考zookeeper安装与伪集群配置。 ...

  • zookeeper简介(整理)

    zookeeper单机模式搭建Zookeeper集群及伪集群模式搭建 简介 ZooKeeper 是一个开源的分布式...

  • zookeeper伪集群数据不一致问题

    zookeeper伪集群数据不一致问题 使用zookeeper client访问zookeeper时,删除节点报错...

  • zookeeper 安装及监控

    Zookeeper有三种运行模式:单机模式、伪集群模式和集群模式。注意的是一般zookeeper集群由3~5台服务...

  • Zookeeper 安装与部署

    Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台...

  • zookeeper安装:单机模式、伪集群模式、集群模式

    zookeeper的安装分为三种模式: 单机模式、伪集群模式和集群模式。 安装需要用到的zookeeper文件,到...

网友评论

      本文标题:zookeeper伪集群

      本文链接:https://www.haomeiwen.com/subject/yxkcextx.html