Linux下Zookeeper伪集群环境搭建

作者:工程材料    来源:未知    发布时间:2019-12-18 19:37    浏览量:

图片 1

图片 2

申明,测量试验连接成功。

图片 3

图片 4

server2:

意味着将dataDir钦赐为其转为目录的父目录下的 dataDir文件夹下(D:Program Fileszookeeper-3.4.9dataDir)

此间的种种服务器的Zoo.cfg配置都无差距,只是server1,server2,server3的ip供给换来真正的ip。

 

独家步向各种zookeeper-3.4.6/conf目录,会有3个文件,configuration.xml,log4j.properties,zoo_sample.cfg,那3个文件我们率先要做的正是将conf/zoo_sample.cfg拷贝后生可畏份命名叫zoo.cfg,也坐落conf目录下,当然也得以把zoo_sample.cfg文件改成zoo.cfg,张开zoo.cfg,文件内容如下:

Master.java的机能只是轻便地创设贰个Zookeeper 会话。

进去各样服务器路线:

其中ZK_HOME 为:D:Program Fileszookeeper-3.4.9

布局如图:

切切实实布置如下:

1.上传zookeeper安装包

例如说,这八个构造文件中的相应参数分别如下:

图片 5

图片 6

Server3:

把clientPort=2181改为clientPort=4183

dataDir= /home/tools/zookeeper/server3/zookeeper-3.4.6/data

dataLogDir=/home/tools/zookeeper/server3/zookeeper-3.4.6/log

在zoo.cfg最前边增多以下内容:

server.1=127.0.0.1:2888:3888

server.2=127.0.0.1:2889:3889

server.3=127.0.0.1:2890:3890

运营那几个类,Eclipse调整台出口:

开发银行是还是不是运行成功:

 

艺术就像是伪集群同样,但zoo.cfg的计划差异,集群的如下:

cp zoo_sample.cfg  zoo.cfg  zoo1.cfg zoo2.cfg

initLimit:那几个结构项是用来安顿 Zookeeper 选用客商端(这里所说的客户端不是客户连接 Zookeeper 服务器的顾客端,而是 Zookeeper 服务器集群中三翻五次到 Leader 的 Follower 服务器)开头化连接时最长能经得住多少个心跳时间间距数。当已经超(Jing Chao卡塔尔(英语:State of Qatar)越 5个心跳的时刻(也正是 tickTime)长度后 Zookeeper 服务器还没曾收取客户端的归来信息,那么申明那个客商端连接退步。总的时间长短就是5*2000=10 秒。

当有新的Client连选用Server后,就该cmd窗口就能够输出一些新的开始和结果,如下:

2.配置

 

抑或选拔ps –ef| gep zookeeper,会现身多个线程。表明意况搭建产生功。

从官方网站下载牢固版安装包后,解压。

cd /home/tools/zookeeper/server2/zookeeper-3.4.6/bin

履行命令: sh zkServer.sh start

在cmd命令行运营Zookeeper Server:  >zkServer.cmd

跻身种种服务器路径:

2016-10-20 20:59:06,068 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=E:workspaceeclipse-workspacezookeeper
2016-10-20 20:59:06,068 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=15000 watcher=zookeeper.Master@62f6fb59
2016-10-20 20:59:06,114 [myid:] - INFO  [main-SendThread(0:0:0:0:0:0:0:1:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server 0:0:0:0:0:0:0:1/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
2016-10-20 20:59:06,114 [myid:] - INFO  [main-SendThread(0:0:0:0:0:0:0:1:2181):ClientCnxn$SendThread@876] - Socket connection established to 0:0:0:0:0:0:0:1/0:0:0:0:0:0:0:1:2181, initiating session
2016-10-20 20:59:06,177 [myid:] - INFO  [main-SendThread(0:0:0:0:0:0:0:1:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server 0:0:0:0:0:0:0:1/0:0:0:0:0:0:0:1:2181, sessionid = 0x157e226a4790000, negotiated timeout = 15000
WatchedEvent state:SyncConnected type:None path:null

备注:

在Windows情况下,供给注意的是陈设 dataDir 参数的值。它私下认可是在 ZK_HOME/bin/目录下。能够把它铺排为其余目录,举例:

为每台服务器创制myid:(目标正是让系统明白哪些服务器是server1,server2,server3)

一,下载Zookeeper安装包

tickTime:那一个时刻是当作 Zookeeper 服务器之间或客商端与服务器之间维持心跳的小时间距,也正是各类 tick提姆e 时间就能够发送二个心跳。

三,Eclipse开荒意况布署

Server1:

把clientPort=2181改为clientPort=4181

dataDir= /home/tools/zookeeper/server1/zookeeper-3.4.6/data

dataLogDir=/home/tools/zookeeper/server1/zookeeper-3.4.6/log

在zoo.cfg最前边增加以下内容:

server.1=127.0.0.1:2888:3888

server.2=127.0.0.1:2889:3889

server.3=127.0.0.1:2890:3890

表明你的布局文件并没有增进到classpath下。只需求将ZK_HOME/conf/log4j.properties 放到工程的src目录下就可以。

开头服务器:

什么运维报错提醒找不到zoo.cfg,那是因为官方网址提供的是 ZK_HOME/conf/zoo_sample.cfg,复制生机勃勃份重命名就能够。

证明运行成功。

 

server3:

 

图片 7

 

2.解压并复制解压后的文件夹到钦定目录

 

cd /home/tools/zookeeper/server1/zookeeper-3.4.6/bin

施行命令: sh zkServer.sh start

新建多少个Class,源代码如下:

接通客商端:

假诺运转时报错:

图片 8

 

图片 9

zoo.cfg
dataDir=/home/xxx/dataDir
clientPort=2181
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445


zoo2.cfg
dataDir=/home/xxx/dataDir2
clientPort=2182
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445


zoo3.cfg
dataDir=/home/xxx/dataDir3
clientPort=2183
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445

zoo.cfg配置如图:

Zookeeper只要求增加若干配置文件,就足以在生龙活虎台Computer上运转多少个Zookeeper服务端,从而模拟Zookeeper集群。它是经过在黄金时代台微微处理机上运转八个进程,每一个进度单独代表三个Zookeeper服务器,进而结成Zookeeper集群的。

zookeeper-3.4.6.tar.gz

rz

图片 10

dataDir:从名称想到所包含的意义正是 Zookeeper 保存数据的目录,暗中认可景况下,Zookeeper 将写多少的日记文件也保留在这里个目录里。

echo 1 > $dataDir/myid
echo 2 > $dataDir2/myid
echo 3 > $dataDir3/myid

图片 11

图片 12

syncLimit:这几个布局项标志 Leader 与Follower 之间发送信息,恳求和回合时间长短,最长不能超越多少个 tickTime 的时日长度,总的时间长短正是2*2000=4 秒。

四,在单机中模仿Zookeeper集群

Server2:

把clientPort=2181改为clientPort=4182

dataDir= /home/tools/zookeeper/server2/zookeeper-3.4.6/data

dataLogDir=/home/tools/zookeeper/server2/zookeeper-3.4.6/log

在zoo.cfg最前面增添以下内容:

server.1=127.0.0.1:2888:3888

server.2=127.0.0.1:2889:3889

server.3=127.0.0.1:2890:3890

下一场校勘以下多少个参数:①dataDir ②clientPort ③增多server.n=ip:仲裁通讯端口号:Leader大选端口号

以下为顺序服务器的conf目录:

图片 13

图片 14

除此以外,在dataDir钦定的目录下,创立一个myid文本文件,用来标记Zookeeper服务器的ID消息。

.配置每台服务器的zoo.cfg

<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.9</version>

cd /home/tools/zookeeper/server1/zookeeper-3.4.6/data

创建文件:vi myid

文本内容为:1,然后退出保存。

cd /home/tools/zookeeper/server2/zookeeper-3.4.6/data

始建文件:vi myid

文本内容为:2,然后退出保存。

cd /home/tools/zookeeper/server3/zookeeper-3.4.6/data

创办理文件件:vi myid

文件内容为:3,然后退出保存。

新建多少个Maven工程,加多:

cd /home/tools/zookeeper/server3/zookeeper-3.4.6/bin

实行命令: sh zkServer.sh start

import java.io.IOException;

import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;

public class Master implements Watcher{

    ZooKeeper zk;
    String hostPort;

    public Master(String hostPort) {
        this.hostPort = hostPort;
    }

    void startZK() throws IOException{
        zk = new ZooKeeper(hostPort, 15000, this);
    }

    @Override
    public void process(WatchedEvent event) {
        System.out.println(event);
    }


    public static void main(String[] args) throws Exception{
        String add = "localhost:2181";
        Master m = new Master(add);
        m.startZK();
        Thread.sleep(60000);
    }
}

安插如图:

 

图片 15

 

留意:data,log目录起先是不设有,要求使用mkdir命令创设相应的目录。况兼在data目录下创办理文件件myid,该公文内容分别为1,2,3。

是因为在Eclipse里面写的顺序是Client,必要连接到Zookeeper Server。由此,供给开启Zookeeper Server。在Windows下,运行ZK_HOME/bin/zkServer.cmd 就能够运营Zookeeper Server

clientPort:这几个端口正是客商端连接 Zookeeper 服务器的端口,Zookeeper 会监听这些端口,选取客商端的拜候央求。

使用相应的配备文件来运维Zookeeper服务。如下图,生机勃勃共运维了多个Zookeeper服务,进而在单机上模仿七个三节点集群。

# 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=/tmp/zookeeper

# 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.

#

#

#

# 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

Zookeeper暗中认可的配置文件是zoo_sample.cfg ,将该配置文件复制三份:

图片 16

参照:《Zookeeper分布式进度合作技能精解》

tar -zxvf zookeeper-3.4.6.tar.gz

cp -r zookeeper-3.4.6 /home/tools/zookeeper/server1

cp -r zookeeper-3.4.6 /home/tools/zookeeper/server2

cp -r zookeeper-3.4.6 /home/tools/zookeeper/server3

二,启动Zookeeper Server

server.A=B:C:D:此中 A 是多少个数字,表示那一个是第几号服务器;B 是以此服务器的 ip 地址;C 表示的是这一个服务器与集群中的 Leader 服务器交流音讯的端口;D 表示的是后生可畏旦集群中的 Leader 服务器挂了,供给一个端口来重新举行大选,选出三个新的 Leader,而那些端口正是用来实践公投时服务器互相通讯的端口。如若是伪集群的铺排情势,由于 B 都是同等,所以不一样的 Zookeeper 实例通讯端口号无法长久以来,所以要给它们分配不一样的端口号。

log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Zookeeper集群蒙受搭建

server1:

图片 17

相关新闻推荐

友情链接: 网站地图
Copyright © 2015-2019 http://www.kai-wang.com. AG亚游国际有限公司 版权所有