一,下载Zookeeper安装包

官方网站下载稳定版安装包后,解压。

其中ZK_HOME 为:D:\Program Files\zookeeper-3.4.9

二,启动Zookeeper Server

由于在Eclipse里面写的程序是Client,需要连接到Zookeeper Server。因此,需要开启Zookeeper Server。在Windows下,运行ZK_HOME/bin/zkServer.cmd 即可启动Zookeeper Server

如何启动报错提示找不到zoo.cfg,这是因为官网提供的是 ZK_HOME/conf/zoo_sample.cfg,复制一份重命名即可。

在Windows环境下,需要注意的是配置 dataDir 参数的值。它默认是在 ZK_HOME/bin/目录下。可以把它配置为其他目录,比如:

表示将dataDir指定为其转为目录的父目录下的 dataDir文件夹下(D:\Program Files\zookeeper-3.4.9\dataDir)

在cmd命令行启动Zookeeper Server:  >zkServer.cmd

当有新的Client连接到Server后,就该cmd窗口就会输出一些新的内容,如下:

三,Eclipse开发环境配置

新建一个Maven工程,添加:

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

新建一个Class,源代码如下:

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);
}
}

Master.java的功能只是简单地建立一个Zookeeper 会话。

运行这个类,Eclipse控制台输出:

2016-10-20 20:59:06,068 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=E:\workspace\eclipse-workspace\zookeeper
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

表明,测试连接成功。

如果运行时报错:

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

表明你的配置文件没有添加到classpath下。只需要将ZK_HOME/conf/log4j.properties 放到工程的src目录下即可。

四,在单机中模拟Zookeeper集群

Zookeeper只需要添加若干配置文件,就可以在一台电脑上运行多个Zookeeper服务端,从而模拟Zookeeper集群。它是通过在一台电脑上运行多个进程,每个进程单独代表一个Zookeeper服务器,从而组成Zookeeper集群的。

具体配置如下:

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

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

然后修改以下几个参数:①dataDir ②clientPort ③添加 server.n=ip:仲裁通信端口号:Leader选举端口号

比如,这三个配置文件中的相应参数分别如下:

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

另外,在dataDir指定的目录下,创建一个myid文本文件,用来标识Zookeeper服务器的ID信息。

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

使用相应的配置文件来启动Zookeeper服务。如下图,一共启动了三个Zookeeper服务,从而在单机上模拟一个三节点集群。

参考:《Zookeeper分布式过程协同技术详解》

zookeeper Eclipse 开发环境搭建及简单示例的更多相关文章

  1. 大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建

    大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建 大数据应用之Windows平台Hbase客户端Eclipse环境搭建-Java版 作者:张子良 版权所有,转载请注明出处 引子 ...

  2. android Jni NDK开发环境搭建及其简单实例的编写

    android  Jni  NDK开发环境搭建及其简单实例的编写 由于工作需要,需要采用开发想要的JNI,由于之前没有接触过安卓的开发,所以更加网上的帖子,学习了下.遇到了些问题,然后总结下学习过程中 ...

  3. [转]MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)

    MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)   网上有一篇shangdong_chu网友写的文章介绍如何在Eclipse上配置M ...

  4. Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Maven)

    写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) 我这里,相信,能看此博客的朋友,想必是有一定基础的了.我前期写了大量的基础性博文. ...

  5. Hadoop Eclipse开发环境搭建

        This document is from my evernote, when I was still at baidu, I have a complete hadoop developme ...

  6. libgdx for eclipse开发环境搭建

    1.安装jdk1.7以上 2.下载libgdx1.2.0 下载地址:https://libgdx.badlogicgames.com/releases 3.下载项目创建工具(老版本的) 下载地址:ht ...

  7. (转)Hadoop Eclipse开发环境搭建

    来源:http://www.cnblogs.com/justinzhang/p/4261851.html This document is from my evernote, when I was s ...

  8. Hadoop伪分布配置与基于Eclipse开发环境搭建

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  9. robot framework环境搭建和简单示例

    环境搭建 因为我的本机已经安装了python.selenium.pip等,所以还需安装以下程序 1.安装wxPythonhttp://downloads.sourceforge.net/wxpytho ...

随机推荐

  1. Ember入门指南——教程目录

    http://120.24.90.140:2368/emberru-men-zhi-nan-jiao-cheng-mu-lu/

  2. 2034-人见人爱A-B(c++实现)

    Problem Description 参加过上个月月赛的同学一定还记得其中的一个最简单的题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法 ...

  3. SharePoint 2013 配置基于表单的身份认证

    前 言 这里简单介绍一下为SharePoint 2013 配置基于表单的身份认证,简单的说,就是用Net提供的工具创建数据库,然后配置SharePoint 管理中心.STS服务.Web应用程序的三处w ...

  4. 从angularJS看MVVM

    javascript厚积薄发走势异常迅猛,导致现在各种MV*框架百家争雄,MVVM从MVC演变而来,为javascript注入了全新的活力.我工作的业务不会涉及到angularJS[ng]这么重量级的 ...

  5. IOS中限制TextField中输入的类型以及长度

    -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementSt ...

  6. 设置UIImage的渲染模式:UIImage.renderingMode

    设置UIImage的渲染模式:UIImage.renderingMode 着色(Tint Color)是iOS7界面中的一个.设置UIImage的渲染模式:UIImage.renderingMode重 ...

  7. 查看Android系统给APP分配的最大堆栈

    命令方式: cat /system/build.prop dalvik.vm.heapgrowthlimit=48m dalvik.vm.heapsize=128m 代码方式: Runtime rt= ...

  8. Android自定义控件2--优酷菜单界面初始化

    本文开始将逐步去实现下面优酷菜单的效果: 本文地址:http://www.cnblogs.com/wuyudong/p/5912538.html,转载请注明源地址. 本文首先来实现优酷菜单界面初始化工 ...

  9. iOS7 edgesForExtendedLayout -- 解决冲突 / 系统偏移

    今天在做UISearchBar,UISearchDisplayController时遇到了一个问题,在点击搜索栏时阴影部分的位置出现偏差 如下图: 始终觉得很奇怪,后面单独做了一个demo,将同样的代 ...

  10. yii2 gridview 是否显示某列案例

    作者:白狼 出处:http://www.manks.top/article/yii2_gridview_visible 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给 ...