zookeeper Eclipse 开发环境搭建及简单示例
一,下载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 开发环境搭建及简单示例的更多相关文章
- 大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建
大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建 大数据应用之Windows平台Hbase客户端Eclipse环境搭建-Java版 作者:张子良 版权所有,转载请注明出处 引子 ...
- android Jni NDK开发环境搭建及其简单实例的编写
android Jni NDK开发环境搭建及其简单实例的编写 由于工作需要,需要采用开发想要的JNI,由于之前没有接触过安卓的开发,所以更加网上的帖子,学习了下.遇到了些问题,然后总结下学习过程中 ...
- [转]MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)
MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题) 网上有一篇shangdong_chu网友写的文章介绍如何在Eclipse上配置M ...
- Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Maven)
写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) 我这里,相信,能看此博客的朋友,想必是有一定基础的了.我前期写了大量的基础性博文. ...
- Hadoop Eclipse开发环境搭建
This document is from my evernote, when I was still at baidu, I have a complete hadoop developme ...
- libgdx for eclipse开发环境搭建
1.安装jdk1.7以上 2.下载libgdx1.2.0 下载地址:https://libgdx.badlogicgames.com/releases 3.下载项目创建工具(老版本的) 下载地址:ht ...
- (转)Hadoop Eclipse开发环境搭建
来源:http://www.cnblogs.com/justinzhang/p/4261851.html This document is from my evernote, when I was s ...
- Hadoop伪分布配置与基于Eclipse开发环境搭建
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- robot framework环境搭建和简单示例
环境搭建 因为我的本机已经安装了python.selenium.pip等,所以还需安装以下程序 1.安装wxPythonhttp://downloads.sourceforge.net/wxpytho ...
随机推荐
- JavaScript学习笔记-数组
数组 数组中的每个元素的位置是索引,索引是基于32位的由0开始的数值,最大索引为(2的32次方-2),最大长度为(2的32次方-3) 数组是无类型的:元素可为任意类型:动态的:可根据需要自动增长.缩减 ...
- 强大的JavaScript动画图形库mo.js
最近在学习前端动画方面知识时发现了挺有趣的一个动画的图形库mo.js,页面效果真是酷炫,有兴趣的同学可以研究下:). 酷炫的效果: 以下是官方的demo效果,更多详情请查看 mo.js http:// ...
- linux集群运维工具:pssh
由于需要安装hadoop集群,有10台机器需要安装,一开始打算用SCP复制,后来觉得不可接受(实际现场可能数倍的机器集群,就是10台也不想干).后来在网上找了,发现了clustershell和pssh ...
- Understanding the Uncertain Geographic Context Problem
"The areal units (zonal objects) used in many geographical studies are arbitrary, modifiable, a ...
- Android 动态创建Fragment
Fragment是activity的界面中的一部分或一种行为.可以把多个Fragment组合到一个activity中来创建一个多界面并且可以在多个activity中重用一个Fragment.可以把Fr ...
- C语言退出多层嵌套循环技巧
由于break语句只能影响它的最内层循环,要想立即从深层嵌套循环中退出,有哪些方法呢? 1.使用goto语句: while(condition1) { while(condition2) { whil ...
- 搭建一个完整的Android工程(一)Dagger2
写在前面 现在越来越多的使用到了开源项目,但是仅限于使用,却不了解,更谈不上深入.也是因为越来越多的开源项目,平时工作中遇到问题也是第一时间寻找对应的开源项目,少了许多独立的思考.现在虽然能很轻松的完 ...
- WPF学习之路(五) 实例:写字板
写字板实例一 MainWindow.xaml <Window x:Class="Wordpad01.MainWindow" xmlns="http://schema ...
- 判断字符串的首字母 ---------startsWith
列: { xtype : 'gridcolumn', ...
- MVC 多语言记录1 设置默认的ResourceType
http://stackoverflow.com/questions/3260748/default-resource-for-data-annotations-in-asp-net-mvc Add ...