windows10环境搭建zookeeper集群,创建一个简单的zookeeper项目

 

一、windows10环境搭建zookeeper集群

今天尝试在自己的windows系统中搭建zokeeper集群环境,记录下步骤和出现的问题以及解决方法。

搭建环境

1)电脑里下载的zookeeper版本是3.4.5,解压到D盘,创建3个目录,分别为server1,servr2,server3,将解压好的文件分别复制一份到这三个目录中。

2)配置。进入到conf目录中,将zoo_sample.cfg重命名为zoo.cfg,并且修改cfg文件的属性

# 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=D:/DataBase/zookeeper/server1/zookeeper-3.4.5/data
# the port at which the clients will connect
clientPort=2181
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889

其中,dataDir可以自己选择目录,是存放myid文件的地方,data文件夹需要自己创建,其他的两个文件夹的配置也要修改,server2文件夹里面的clientPort就可以写成2182,dataDir也需要相对应修改,依次类推。

3)进入server1文件夹里面的zookeeper文件夹里,创建data文件夹,并且创建myid文件。

注意,这块需要保证文件的编码格式,我是直接在目录里使用鼠标直接右键生成文件,最后报错了。想到直接在cmd进入到data文件夹里,使用echo命令创建,这样就可以创建好了,最后还得看看是否myid文件里只有这个一个数字(空格,换行之类的都不行),其他两个文件夹也一样。

echo 1 > myid

4)进入到bin文件夹里,shift + 右击,进入控制台,启动zookeeper,启动三个

zkServer.cmd

5)启动成功后,进入到server1的bin目录下,连接,连接其他的就进入到相对应的文件夹里

zkCli.cmd

6)使用set ,ls ,get命令进行测试。在server1中set的数据在server2或者server3中同样可以看到,保证了同步。

二、使用java连接zookeeper:

首先导入zookeeper-3.4.5的jar到zookeeper项目中,接下来是使用eclipse编写连接的代码:

@Test
	public void test1() throws Exception{
		ZooKeeper zk = new ZooKeeper("localhost:2181", 500000,new Watcher() {
			
			@Override
			public void process(WatchedEvent event) {
				System.err.println("watch:" + event.toString());
			}
		});
		byte[] data = zk.getData("/", true, null);
		System.out.println(data);
	}

2181是客户端连接的端口号,运行的时候我遇到了两个问题:

1)刚启动报NoClassDefFoundError错误,这个是jar包不全,需要将zookeeper的lib下的log4j和slf4j两个jar文件导入到项目中,就不会报这样的错误。

2)启动的时候报这样的错误,连接错误。我配置的zookeeper是3个集群,但是我目前只启动了一个,在zookeeper中,

启动的集群的个数必须大于所有集群的一半,所以说我这个电脑必须启动两个以上的server,才能正常运行。

启动成功后的效果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章