zooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
zookeeper解决问题:
1.管理系统中独特的/统一的信息
一个分布式系统的各节点可能需要一个规范,各节点的唯一的命名(例如节点名、CPU编号等) ,ZK可以实现这个应用场景。
各节点也会有一致信息,例如每个节点的主配置信息。为了方便管理,新加入的节点也需要快速同步这些信息.
2..集群状态的监控和通知
分布式系统中每个节点需要知道整个系统的状态、知道系统中每个节点状态:当有新节点加入时它需要知道、当有节点出现故障时它需要知道、当有节点退出时,它需要知道,Zk就是这样一个通知工具。
3.协调资源抢占
当分布式系统的多个节点视图同时抢占唯一资源时(例如同时写入一个文件),就需要对这个唯一资源的使用进行协调。这个ZK的协调者功能。
4.分派计算任务
如何协调1000个需要同时处理的任务到分布式系统的13个节点。如何保证执行失败的任务能被重新执行,如何在某个节点崩溃的情况下,接管其他正在处理的任务。