ZooKeeper介绍及集群搭建

来源:互联网 发布:口腔正畸 知乎 编辑:程序博客网 时间:2024/05/16 09:08

zookeeper介绍

Zookeeper是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务。

它包括一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。

为什么要使用Zookeeper?

  • 大部分分布式应用需要一个主控、协调器或控制器来管理物理分布的子进程(如资源、任务分配等)
  • 目前,大部分应用需要开发私有的协调程序,缺乏一个通用的机制
  • 协调程序的反复编写浪费,且难以形成通用、伸缩性好的协调器
  • ZooKeeper提供通用的分布式锁服务,泳衣协调分布式应用

ZooKeeper能帮助我们做什么

  1. 在Hadoop2.0种,使用Zookeeper的事件处理确保整个集群只有一个活跃的NameNode,存储配置信息等。
  2. HBase,使用Zookeeper的事件处理确保整个集群中只有一个HMaster,察觉HRegionServer联机和宕机,存储访问控制列表等.

Zookeeper的特性

  1. 是简单的
  2. 是富有表现力的
  3. 具有高可用性
  4. 采用松耦合交互方式
  5. 是一个资源库,类似于文件系统

ZooKeeper集群配置

  1. 默认配置文件在$ZooKeeper_home/conf/zoo_sample.cfg,将这个改成zoo.cfg即可

    1. tickTime:CS通信心跳时间。(Client和Server)
      Zookeeper服务器之间或客户端与服务器之间维持的时间间隔。以毫秒为单位。
      tickTime=2000
    2. initLimit:LF初始通信时限
      集群中的follower服务器(F)与Leader服务器(L)之间初始连接时可以容忍的最多心跳数。
      initLimit=5
    3. syncLimt:LF同步通信时限
      集群中的follower服务器与Leader服务器(L)之间能容忍的最多心跳数。
      syncLimit=2
    4. dataDir:数据文件目录
      Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在目录里。
      dataDir=/home/xx/data
    5. ClientPort:客户端连接端口
      ZooKeeper服务器的开放端口,供客户端连接。
      clientPort=2181
    6. 服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
      这个配置项的书写格式比较特殊,规则如下:
      server.N=YYY:A:B
      (其中
      server必须小写
      N为编号,不可重复;YYY为主机名或IP
      A是LF通信端口
      B是Follower选举的端口
      )
      比如:

      server.1=skyon01:2888:3888
      server.2=skyon02:2888:3888
      server.3=skyon03:2888:3888
  2. 配置完成后,需要新建dataDir指向的目录,并新建myid文件,写入IP对应的编号,比如1.

  3. 之后就可以将ZooKeeper整个目录拷贝到所需要的机器上并修改对应的myid文件。(scp -r命令)

  4. 在各个机器上分别进入$ZooKeeper_home/bin目录,使用./zkServer.sh start启动。启动三台后可以使用./zkServer.sh status观察是否启动成功.

0 0