BookKeeper

          BookeKeeper具有副本的功能,目的是提供可靠地日志记录。在Bookeeper中,服务器被称为账本(Bookies),

在账本之中有不同的账户(Ledgers),每一个账户由一条条的记录(Entry)组成。如果使用普通的磁盘存储日志

数据,那么日志数据可能遭到破坏,当磁盘发生故障的时候,日志也可能丢失。Bookeeper为每一份日志提供了分

布式存储式的存储,并且采用了大多数(quorun,相对于全体)的概念,也就是说,只要集群中的大多数机器可用,

那么该日志一直有效。

          Bookepeer通过客户端进行操作,客户端可以对Bookeeper进行添加账户、打开账户、添加账户记录、读取账户

记录等操作。另外,Bookeeper的服务依赖于ZooKeeper,可以说BooKeeper是依赖于Zookeeper的一致性分布式的特

点在其之上提供了另外一种可靠性服务。

          BooKeeper总共包含四类角色,分别为账本(Bookies)、账户(Ledger)、客户端(BooKeeper Client)以及

元数据存储服务(Metadata Storage Service)。

BookKeeper_第1张图片

         应用程序在使用账本的时候,首先需要创建一个账户。在创建账户时,系统首先将该账本的Metadata信息写

ZooKeeper中。每一个账户在某一时刻只能有一个写实例。在其他实例进行读操作之前首先需要将写实例关闭,

如果写操作由于故障而未能正常关闭,那么下一个尝试打开账户的实例将需要首先对其进行恢复并正确关闭写操

作。在进行写操作同时需要将最后一次的写记录存储到ZooKeeper中,因此恢复程序仅需要在ZooKeeper中查看该

账户所对应的最后一条写记录,然后将其正确地点写入到账户中,再正确关闭写操作。在BooKeeper中该恢复程

序由系统自动执行,不需要用户的参与。

   BookKeeper_第2张图片

你可能感兴趣的:(hadoop)