整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

14.4.4更多分布式数据结构和协议

hadoop 花牛 101℃ 0评论

使用ZooKeeper可以实现很多不同的分布式数据结构和协议,例如“屏 障”(barrier)、队列和两阶段提交协议。有趣的是它们都是同步协议,但我 们可以使用异步ZooKeeper基本操作(如通知)来实现它们。

ZooKeeper 网站apac/je.org)提供了一些用于实现分布式数据 结构和协议的伪代码。ZooKeeper本身也带有一些标准方法的实现(包括锁、领导者选举和队列),放在安装位置下的recipes目录中。

Curator项目(http://github.com/Netflix/curator)提供了更多的 ZooKeeper方法的实现。

BookKeeper 和 Hedwig

BookKeeper是一个具有髙可用性和可靠性的日志服务。它可以用来实现预 写式日志(write-ahead logging),这是一项在存储系统中用于保证数据完整性的常用技术。在一个使用预写式日志的系统史,每一个写操作在被应用前 都先要写入事务日志。使用这个技术,我们必在每个写操作之后都将数 据写到永久存储器上,因为即使出现系统故障,也可以通过重新执行事务日志中尚未应用的写操作来恢复系统的最后状态。

BookKeeper客户端所创建的日志被称为ledger,每一个添加到ledger的记录被称为ledger entry,每个ledger entry就是一个简单的字节数组。ledger 由保存有ledger数据副本的bookie服务器组进行管理。注意,ledger数据不存储在ZooKeeper中,只有元数据保存在ZooKeeper中。

传统上,为了让使用预写式日志的系统更加稳定,必须解决保存有事务曰 志的节点的故障问题,这通常是通过某种方式复制事务日志来解决这个问 题。例如,Hadoop HDFS中的namenode会将它的编辑日志写到多个磁盘 上,每个磁盘都是一个典型的NFS装入盘。尽管如此,当主节点出现故障时,还是需要手动完成故障恢复。通过提供具有高可用性的日志服务,BookKeeper承诺提供透明的故障恢复,因为它可以容忍Bookie服务器的故障。(就3.2.4节所描述的HDFS高可用性来说,使用基于BookKeeper的编辑日志后将不再需要利用NFS来实现共享存储。)

Hedwig是利用BookKeeper实现的一个基于主题的发布-订阅系统。以ZooKeeper作为基础Hedwig提供了一个具有高可用性的服务,即使在订阅者长时间离线的情况下它也能够保证消息的传递。

BookKeeperZooKeeper的一个子项目,在http://zooteeper.apache.org/bookkeeper/可以找到它和Hedwig的更多相关用法。

转载请注明:全栈大数据 » 14.4.4更多分布式数据结构和协议

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址