大数据技术生态的各个组件,不少都是带着动物Logo的,什么大象(Hadoop)、蜜蜂(Hive)、松鼠(Flink),因此也就有了Hadoop动物园的说法,而要管理好各个组件,自然也就需要一个"动物管理员",于是Zookeeper就出现了。今天的大数据入门分享,我们主要来讲讲Zookeeper分布式协调服务。 一、Zookeeper简介 ZooKeeper是开源分布式协调服务组件,提供高可用、高性能、稳定的分布式数据一致性解决方案,通常被用于实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。 二、ZooKeeper数据模型 Zookeeper中所有存储的数据由znode组成,节点也成为znode,并以key value键值对形式存储数据。整体结构类似linux文件系统,根路径以/开头。 znode中数据的读写都是原子的,而且每一个znode都有一个Access Control List(ACL)用来限制谁可以做什么。每一个znode的数据大小不能超过1M。 三、Java操作Zookeeper 通过Java操作Zookeeper有两种方式,一种就是通过Zookeeper提供的原生API进行操作,一种就是通过Apache Curator进行操作。 Apache Curator是比较完善的Zookeeper客户端框架,针对Zookeeper原生API的封装和扩展,降低了使用Zookeeper的复杂性,使得使用Zookeeper更加可靠、更加简单。 四、Zookeeper应用场景 1、命名服务:按名称标识集群中的节点 2、通过Zookeeper实现统一配置管理 3、通过Zookeeper实现分布式锁 其中,Apache Curator针对分布式锁提供了多种实现,包括: InterProcessMutex(分布式可重入排它锁) InterProcessSemaphoreMutex(分布式排它锁) InterProcessReadWriteLock(分布式可重入读写锁) InterProcessMultiLock(将多个锁作为单个实体管理的容器) 4、通过Zookeeper实现Leader选举 在分布式系统中,Leader选举是指指定一个进程(一个实例、一台机器)作为分配给多台服务器任务的组织者的过程。在任务开始之前,所有服务器节点都不知道哪个节点将作为任务的领导者或者说协调者,然后在Leader选举之后,每个节点都会识别出一个特定的、唯一的节点作为任务Leader。 关于大数据入门,Zookeeper分布式协调服务,以上就为大家做了简单的介绍了。Zookeeper在大数据技术生态当中占据着重要的地位,分布式协调服务也是大数据平台运行的重要支撑组件。