您的位置:首页 > 编程语言

zookeeper简单搭建(及代码)

2015-07-09 15:09 363 查看
1、安装zookeeper

zookeeper安装环境为linux,下载的版本为:http://www.apache.org/dist/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz

zookeeper的安装基本上可以按照 http://hadoop.apache.org/zookeeper/docs/current/ zookeeperStarted.html 这个页面上的步骤完成安装,这里主要介绍下部署一个集群的步骤,因为这个官方页面似乎讲得并不是非常详细(Running Replicated Zookeeper)。

由于手头机器不足,所以在一台机器上部署了3个server,如果你手头也比较紧,也可以这么做。那么我建了3个文件夹,如下

server1 server2 server3

然后每个文件夹里面解压一个zookeeper的下载包,并且还建了几个文件夹,总体结构如下,最后那个是下载过来压缩包的解压文件

data dataLog logs zookeeper-3.3.2

那么首先进入data目录,创建一个myid的文件,里面写入一个数字,比如我这个是server1,那么就写一个1,server2对应myid文件就写入2,server3对应myid文件就写个3

然后进入zookeeper-3.3.2/conf目录,那么如果是刚下过来,会有3个文件,configuration.xml, log4j.properties,zoo_sample.cfg,这3个文件我们首先要做的就是在这个目录创建一个zoo.cfg的配置文件,当然你可以把zoo_sample.cfg文件改成zoo.cfg,配置的内容如下所示:

tickTime=2000

initLimit=5

syncLimit=2

dataDir=xxxx/zookeeper/server1/data

dataLogDir=xxx/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

2、启动zookeeper服务端

进入到bin目录中,执行命令,./zkServer.sh start启动,(也可以使用./zkServer.sh start zoo.cfg来指定配置文件进行启动)

3、启动客户端

./zkCli.sh –server 127.0.0.1:2181,这个实际上是简单的模拟,不用启动,直接在远程用java等来连接执行也是一样的。

4、java连接zookeeper

使用到两个java包,一个是log4j,一个是zookeeper的jar包。其中zookeeper的jar包在这里可以下载http://www.java2s.com/Code/Jar/z/Downloadzookeeperjar.htm

log4j的java包任意下载一个就行了,我工程直接利用maven下载的。

import java.io.IOException;

import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;

public class Main {

public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
// TODO Auto-generated method stub
ZooKeeper zk = new ZooKeeper("10.218.137.73:2181", 500000,new Watcher() {
// 监控所有被触发的事件
public void process(WatchedEvent event) {
//dosomething
}
});

//创建一个节点root,数据是mydata,不进行ACL权限控制,节点为永久性的(即客户端shutdown了也不会消失)
zk.create("/jianghuiwen", "mydata".getBytes(),Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
}

}


上面一段是代码,执行完毕后,到服务端利用命令查看,可以发现已经生成了节点。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  zookeeper