Zookeeper基础教程

Zookeeper基础教程

资料来源:Zookeeper Tutorial (tutorialspoint.com)

zookeeper就是Hadoop生态动物园的管理员

1. Zookeeper-概述

ZooKeeper是一种分布式协调服务,用于管理大型主机集群(large set of hosts)。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper用它简单的架构和API解决了这个问题。ZooKeeper允许开发人员专注于核心应用逻辑,而不用担心应用的分布式特性。

ZooKeeper框架最初是在Yahoo!,以便以一种简单而稳健的方式访问他们的应用程序。后来,Apache ZooKeeper成为Hadoop、HBase和其他分布式框架使用的有组织服务的标准。例如,Apache HBase使用ZooKeeper来跟踪分布式数据的状态。本教程解释了ZooKeeper的基础知识,如何在分布式环境中安装和部署ZooKeeper集群,最后以使用Java编程和示例应用程序的几个示例结束。


在进一步讨论之前,了解一些关于分布式应用程序的知识是很重要的。因此,让我们从快速概述分布式应用程序开始讨论。

分布式应用

分布式应用程序可以在给定时间(同时 )在网络中的多个系统上运行,通过它们之间的协调以快速有效的方式完成特定的任务。通常,非分布式应用程序(在单个系统中运行)需要数小时才能完成的复杂且耗时的任务,通过使用所有相关系统的计算能力,分布式应用程序可以在几分钟内完成。

通过将分布式应用程序配置为在更多系统上运行,可以进一步减少完成任务的时间。运行分布式应用程序的一组系统称为集群 (Cluster),在集群中运行的每台机器称为节点(Node)。

分布式应用程序有两个部分,服务器 (Server)和客户端(Client)应用程序。服务器应用程序实际上是分布式的,并且具有公共接口,因此客户机可以连接到集群中的任何服务器并获得相同的结果。客户机应用程序是与分布式应用程序交互的工具。如下图所示。


分布式应用程序的优点

可靠性−单个或部分系统故障不会导致整个系统故障。

可扩展性-性能可以在需要时增加更多的机器,在应用程序的配置中进行微小的更改,而不会停机。

透明性-隐藏系统的复杂性,显示其作为一个单一的实体/应用程序。


分布式应用的挑战

竞态条件(Race condition)−:两台或两台以上的机器同时执行某项任务,而该任务在任何给定时间内实际上只需要一台机器来完成。例如,共享资源在任何给定时间只能由一台机器修改。聪明的你有没有想起操作系统的知识?(doge)

死锁−两个或多个操作无限期地等待对方完成。

不一致性−数据部分失效。


那么ZooKeeper存在的意义是什么?

Apache ZooKeeper是集群(一组节点)使用的服务,通过强大的同步技术在集群(一组节点)之间进行协调并维护共享数据。ZooKeeper本身就是一个分布式应用程序,为编写分布式应用程序提供服务。

ZooKeeper提供的常用服务有:

命名服务−通过名称识别集群中的节点。它类似于DNS,但针对的是节点。

配置管理−接入节点最新的系统配置信息。

集群管理−实时管理集群中节点的加入/退出和节点状态。

Leader选举−选举节点作为Leader进行协调。

锁定同步服务−数据修改时锁定。这种机制可以帮助您在连接其他分布式应用程序(如Apache HBase)时自动进行故障恢复。

高可靠性的数据注册表−即使一个或几个节点宕机,数据仍然可用。

分布式应用程序提供了很多好处,但也带来了一些复杂和难以破解的挑战。ZooKeeper框架提供了一个完整的机制来克服所有的挑战。使用故障安全同步方法(fail-safe synchronization approach)处理竞争条件和死锁。另一个主要缺点是数据不一致,ZooKeeper通过**原子性(atomicity)**解决了这个问题。


Zookeeper的优点

简单的分布式协调过程

同步−服务器进程间互斥协作。这个过程有助于在Apache HBase中进行配置管理。

有序的消息 (Ordered Messages)

序列化−按照指定的规则对数据进行编码。确保应用程序始终如一地运行。这种方法可以在MapReduce中用于协调队列以执行正在运行的线程。

可靠性

原子性-数据传输完全成功或完全失败,但没有事务是部分的。

相关推荐
Curvatureflight1 小时前
接口幂等性设计:如何避免重复提交、重复扣款和消息重复消费?
分布式·后端·架构
Kyrie_Li2 小时前
Kafka-基础知识总结
运维·分布式·kafka
江华森4 小时前
XXL-JOB 分布式任务调度平台深度学习指南
分布式
m0_736034857 小时前
ceph分布式存储
分布式·ceph
冷色调的咖啡师7 小时前
4.大数据高可用
大数据·linux·hadoop·hdfs·zookeeper·yarn
冷色调的咖啡师7 小时前
1.大数据架构技术 上——搭建分布式Hadoop集群
大数据·linux·hadoop·分布式·hdfs·架构·yarn
坤昱1 天前
cfs调度类深入解刨——最新内核细节分析5
linux·分布式·cfs调度·eevdf调度·linux调度·linux技术·kernel最新版本内容
AI人工智能+电脑小能手1 天前
【大白话说Java面试题 第91题】【Mysql篇】第21题:分布式锁的使用场景和原理?
java·数据库·分布式·mysql·面试
JAVA社区1 天前
Java高级全套教程(十三)—— 分布式锁超详细实战详解(原理+三种方案企业级落地)
java·开发语言·分布式·spring cloud·面试·java-zookeeper
Leo1871 天前
分布式事务
java·分布式·分布式事务