ZooKeeper—分布式协同服务
1.概述
ZooKeeper[1]是hadoop的一个分布式协同服务,主要解决分布式应用程序中的局部失败问题,即网络操作过程中发送者与接收者之间无法明确发送操作是否正确无误。在分布式系统中,它能够提供:系统配置信息维护,命名,分布式同步等服务。著名的Hadoop分布式数据库HBase已经采用了ZooKeeper技术为其提供服务[2],如,ZK存储了HBase中的Region的寻址入口;实时监控Rgeion Server的状态,将Region Server上、下线实时通知给master。
Zookeeper非常简化暴漏一些简单的基本操作,可以将其想象为一个简单的文件系统提供读、写操作服务,此外,它还有预定(ordering)和通知(notification)服务。ZK的可靠性体现在ZK服务是一一个集群的方式提供服务,所以,分布式应用程序不会因为使用ZK服务器而导致单点失败问题,相反,很多分布式应用程序可以通过引入ZK来解决本身系统存在的单点问题,HBase就是这样做的。
2.ZooKeeper安装
1.下载http://www.apache.org/dyn/closer.cgi/zookeeper/最新文档版本。
2. 解压:% tar xzf zookeeper-x.y.z.tar.gz 。配置环境变量:ZOOKEEPER_INSTALL指向ZK的安装目录,在PATH中加入可执行文件目录。简单的办法是在/etc/profile里加入下面两行:
export ZOOKEEPER_INSTALL=/home/tom/zookeeper-x.y.z
export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
ZK的配置文件conf/zoo.cfg三个变量:
trickTime= 2000 //ZK的基本时间单位,单位微秒
dataDir=/usr/tom/zookeeper //数据目录,用于存放ZK的持久化信息
clientPort=2181 //ZK的默认监听端口
3.启动ZK:
%zkServer.sh start
4.确认安装:
%echo ruok | nc localhost 2181
如果返回信息是imok(“Iam ok ”)的话表明安装成功。
以上只是简单的单机情况的配置。关于在实际生成系统中的安装配置,后面将详细介绍。
参考资料
【1】ZK官方网址http://zookeeper.apache.org/
【2】HBase中集成ZK: https://cwiki.apache.org/confluence/display/ZOOKEEPER/HBaseAndZooKeeper;
https://cwiki.apache.org/confluence/display/ZOOKEEPER/HBaseUseCases