Zookeeper服务
您目前处于:大数据  2014年07月28日

数据模型

Zookeeper维护着一个树形层次结构,树中的节点称为znode。znode可以用于存储数据,并且有一个与之相关联的ACL。Zookeeper被设计用来实现协调服务,通常是小数据文件,而不是用于大数据容器存储,因此一个znode能存储的数据被限制在1MB以内。

Zookeeper的数据访问具有原子性。客户端在读取一个znode的数据时,要么读取到所有数据,要么读操作失败,不会只读到部分数据。同样,写操作将替换znode存储额所有数据。Zookeeper会保证写操作不成功就失败,不会出现部分写之类的情况,也就是不会出现只保存客户端所写部分数据的情况。Zookeeper不支持添加操作。这些特性和HDFS不同,HDFS被设计用于大数据存储,支持流式数据访问和添加操作。

znode通过路径被引用。像Unix中文件操作路径一样,在Zookeeper中路径被表示成用斜杠分隔的Unicode字符串。与Unix中的文件系统路径不同,Zookeeper中路径必须是绝对路径,也就是说每条路径必须从一个斜杠字符开始。

短暂znode

znode有两种类型:短暂和持久的。znode的类型在创建时确定并且之后不能再修改。在创建短暂znode的客户端回话结束时,Zookeeper会将该短暂znode删除。相比之下,持久znode不依赖于客户端会话,只有当客户端明确要删除该持久znode时才会被删除,短暂znode不可以有子节点,即使是短暂子节点。

观察

znode以某种方式发生变化时,"观察"(watch)机制可以让客户端得到通知。可以针对ZooKeepr服务的操作来设置观察,该服务的其他操作