您的位置:首页 > 运维架构

Zookeeper一伪分布式集群搭建

2017-12-04 00:27 225 查看
一、描述

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

伪分布式集群就是在一台机器部署多个zk应用,部署之前服务器需要有jdk环境 java -version可以显示相关java信息才可以进行zookeeper搭建

二、步骤

下载好zookeeper-3.4.10.tar.gz

解压tar zxvf zookeeper-3.4.10.tar.gz

解压完成看一下 zookeeper的目录结构



zookeeper是由Java语言编写的,很明显能看到相应的jar包,以及lib 依赖。其中最主要的是conf配置目录和bin目录 。

看一下配置目录



可以看到有三个文件,其中log4j.properties 是zookeeper的日志配置。

zoo_sample.cfg是zookeeper提供的示例配置文件,zookeeper默认的配置文件名是zoo.cfg。

zookeeper基本的配置文件

我们先看一下给的示例配置文件zoo_sample.cfg



其中默认的配置参数有这么几个

tickTime=2000 ,心跳间隔时间 2000毫秒

initLimit=10 , leader和follower同步的时间间隔,10 代表10个心跳间隔进行数据同步一次。(基础知识:zookeeper集群环境下,Leader作为整个ZooKeeper集群的主节点,负责响应所有对ZooKeeper状态变更的请求。follower主要响应本服务器上的读请求)

synchLimit=5 ,leader和follower失去连接多久后,follower会被放弃,这里5代表5个心跳间隔仍然没有通信,那么follower会被集群放弃。

dataDir=/tmp/zookeeper , 数据存放的目录

clientPort=2181 , 这个服务监听的端口号

这里进行集群配置我们需要在修改配置文件,在配置文件中加入集群的服务器配置。



解释一下:

我在这个配置文件中加入了集群的配置

server.1=localhost:2187:2887

server.2=localhost:2188:2888

server.3=localhost:2189:2889

其中server代表服务,等号前面数字代表服务的ID,等号后面host和port还有备用host。我打算搭建三个服务作为一个伪集群,所以写了三个。

实际中是真集群,那么就是host不同端口号port相同。

另外还配置了zookeeper的数据存放文件位置/tmp/zookeeper/data/d_1

还配置了zookeeper的日志存放文件/tmp/zookeeper/log/log_1

这里我先放到了临时文件目录下,实际中不能这么放。数据是要妥善存放的。这样基本的配置就配置好了。

同时还配置了最大链接客户端数量 maxClientCnxns=60

6. 把文件复制三份,进行修改。





把对应的 zoo2.cfg 中的端口改完2182 ,数据文件以及日志文件相应改名。

7. 在集群环境下zookeeper要把数据文件和配置文件进行关联,才能知道哪个数据文件对应哪个节点服务。因此要在数据文件中配置myid。



这里我已经建立好myid文件

同样进入目录d_2和d_3进行配置

8. 至此伪集群的搭建完成,下面启动测试



这里是有几个命令使用zkServer.sh 进行启动

启动服务端:





9. 启动客户端链接:



可以看到 成功与 zookeeper建立的链接。

之后就可以进行操作。



关于zookeeper的客户端操作命令可以进入客户端的入口类进行查看。从图中可以看到 org.apache.zookeeper.ZooKeeperMain是入口类。





有了这些我们就可以知道 这些操作都是如何执行的了,这个以后可以查看。

10.关闭zookeeper服务

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