分享

ZooKeeper的作用

hyj 2013-12-11 16:20:54 发表于 介绍解说 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 7523
1.1. 概述
    ZooKeeperApache在很多云计算项目中的一个,与Hadoop密切相关,这种情况导致我一开始认为ZooKeeper的搭建需要Hadoop项目作为支持,但是最后发现完全不需要,它是可以单独运行的一个项目。
    在网上看到了一个很不错的关于ZooKeeper的介绍: 顾名思义动物园管理员,他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig)  的管理员, Apache HbaseApache Solr 以及LinkedIn sensei  等项目中都采用到了 ZookeeperZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,ZooKeeper是以Fast Paxos算法为基础,实现同步服务,配置维护和命名服务等分布式应用。
    从介绍可以看出,ZooKeeper更倾向于对大型应用的协同维护管理工作。IBM则给出了IBMZooKeeper的认知: Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
    总之,我认为它的核心词就是一个单词,协调。
1.2. ZooKeeper的特征
    在Hadoop权威指南中看到了关于ZooKeeper的一些核心特征,阅读之后感觉总结的甚是精辟,在这里引用并总结。
1.2.1. 简易
    ZooKeeper的最重要核心就是一个精简文件系统,提供一些简单的操作以及附加的抽象(例如排序和通知)。
1.2.2. 易表达
    ZooKeeper的原型是一个丰富的集合,它们是一些已建好的块,可以用来构建大型的协作数据结构和协议,例如:分布式队列、分布式锁以及一组对等体的选举。
1.2.3. 高可用性
    ZooKeeper运行在一些集群上,被设计成可用性较高的,因此应用程序可以依赖它。ZooKeeper可以帮助你的系统避免单点故障,从而建立一个可靠的应用程序。
1.2.4. 松散耦合
    ZooKeeper的交互支持参与者之间并不了解对方。例如:ZooKeeper可以被当做一种公共的机制,使得进程彼此不知道对方的存在也可以相互发现并且交互,对等方可能甚至不是同步的。
    这一特点我感觉最能体现在集群的部署启动过程中。像Hadoop当把配置文件写好之后,然后运行启动脚本,则251241242中作为集群的虚拟机是同步启动的,也就是DataNodeNameNodeTaskTracker,以及JobTracker的启动并运行时在一次启动过程中启动的,就是运行一次启动脚本文件,则都启动起来。但是ZooKeeper的启动过程却不是这样的。我在251241242部署了ZooKeeper集群,并进行启动,则启动的过程是这样的:首先ssh251然后启动,这时候251的集群节点启动起来,但是控制台一直报错,大概的含义就是没有检测到其他两个结点。接着分别ssh241242,分别启动集群中的剩下的结点,当241启动起来时,回到251查看,发现报错的信息减少,意思是只差一个结点。当251241242三台服务器的结点全部启动起来,则三台的服务器的控制台打印出正常的信息。
1.2.5. ZooKeeper是一个库
    ZooKeeper提供了一个开源的、共享的执行存储,以及通用协作的方法,分担了每个程序员写通用协议的负担。随着时间的推移,人们可以增加和改进这个库来满足自己的需求。

已有(1)人评论

跳转到指定楼层
pengsuyun 发表于 2014-12-5 15:31:34
谢谢楼主,学些了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条