Zookeeper一伪分布式集群搭建

一、描述
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
伪分布式集群就是在一台机器部署多个zk应用,部署之前服务器需要有jdk环境 java -version可以显示相关java信息才可以进行zookeeper搭建
二、步骤

  1. 下载好zookeeper-3.4.10.tar.gz
  2. 解压tar zxvf zookeeper-3.4.10.tar.gz
  3. 解压完成看一下 zookeeper的目录结构
    这里写图片描述
    zookeeper是由Java语言编写的,很明显能看到相应的jar包,以及lib 依赖。其中最主要的是conf配置目录和bin目录 。
    看一下配置目录
    这里写图片描述
    可以看到有三个文件,其中log4j.properties 是zookeeper的日志配置。
    zoo_sample.cfg是zookeeper提供的示例配置文件,zookeeper默认的配置文件名是zoo.cfg。
  4. 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 , 这个服务监听的端口号

  5. 这里进行集群配置我们需要在修改配置文件,在配置文件中加入集群的服务器配置。
    这里写图片描述
    解释一下:
    我在这个配置文件中加入了集群的配置
    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服务
这里写图片描述