大数据Hadoop之ZooKeeper认识

大数据Hadoop之ZooKeeper认识,第1张

Zookeeper字面上理解就是动物管理员,Hadoop生态圈中很多开源项目使用动物命名,那么需要一个管理员来管理这些“动物”。
集群的管理中Zookeeper起到非常重要的角色,他负责分布式应用程序协调的工作。
Zookeeper管理集群会选举一个Leader节点(可参考FastLeader选举算法,即快速选举Leader节点),Leader节点主要负责整个Zookeeper集群的运行管理,Follower负责管理具体的数据存储与读取。
Zookeeper主要提供以下四点功能:统一命名服务、配置管理、集群管理、共享锁和队列管理,用于高效的管理集群的运行。

1 统一命名服务

命名服务指通过指定的名字获取资源或者服务提供者的信息。分布式应用中,通常需要有一套完整的命名规则,既能够产生唯一的名称又便于识别和记忆。通常情况下使用树形的名称结构是一个理想的选择,树形的名称结构是一个有层次的目录结构,即对人友好又不会重复。
Zookeeper集群中统一由Leader节点(图中M节点)来管理所有Follower节点(图中的S1和S2节点)的命名空间。Zookeeper提供统一的命名服务,他不对外提供数据也不存储数据,他只提供一套统一的命名规则,运行在Zookeeper之上的服务需要遵循这一套命名规则。其中较为常见的就是一些分布式服务框架中的服务地址列表。通过调用ZK提供的创建节点的接口(API),能够很容易创建一个全局唯一的路径(path),这个path就可以作为一个名称。命名服务(NameService)已经是Zookeeper内置的功能,你只要调用Zookeeper的API就能实现。如调用create接口就可以很容易创建一个目录节点。

遵循Leader统一管理命名规则下,集群中数据读写的方式:

11写数据,一个客户端进行写数据请求时,会指定Zookeeper集群节点,如果是Follower接收到写请求,会把请求转发给Leader,Leader通过内部的Zab协议进行原子广播,直到所有Zookeeper节点都成功写了数据,然后Zookeeper会给Client发回写完响应。

12读数据,因为集群中Zookeeper按照统一的命名空间,所有Zookeeper节点呈现相同的命名空间视图(文件目录名称结构),所以读数据的时候请求任意一台Zookeeper节点都一样。

2 配置管理

配置的管理在分布式应用环境中很常见,例如同一个应用需要在多台服务器上运行,但是它们的应用系统的某些配置相同的,如果要修改这些相同的配置项,就必须同时修改每台运行这个应用系统的PC Server,这样非常麻烦而且容易出错。像这样的配置信息完全可以交给Zookeeper来管理,处理起来非常便捷。

配置的管理包含发布和订阅两个过程,顾名思义就是将数据发布到ZK节点上,供订阅者动态获取数据,实现配置信息的集中管理和动态更新。
如图所示,将配置信息保存在Zookeeper(Leader节点)的某一个目录中,然后将所有需要修改的应用机器订阅该Zookeeper(Leader节点)节点,一旦Leader节点发布新配置信息,每台订阅的机器就会收到Zookeeper的通知,然后从Zookeeper获取新的配置信息应用到系统中,完成配置的集中统一管理。
3 集群管理

Zookeeper在集群管理中主要是集群监控和Leader选举。
31集群管理

这通常用于那种对集群中机器状态、 , 机器在线率有较高要求的场景,能够快速对集群中机器变化做出响应。这样的场景中,往往有一个监控系统,实时检测集群机器是否存活。过去的做法通常是:监控系统通过某种手段(比如ping)定时检测每个机器,或者每个机器自己定时向监控系统汇报"我还活着"。

这种做法可行,但是存在两个比较明显的问题:

1)集群中机器有变动的时候,牵连修改的东西比较多。

2)有一定的延时。

利用ZooKeeper中两个特性,就可以实施另一种集群机器存活性监控系统:

1)客户端在示例节点A上注册一个监控者(Watcher),那么如果A的子节点变化了,会通知该客户端。

2)创建EPHEMERAL类型的节点,一旦客户端和服务器的会话结束或过期,那么该节点就会消失。

32Leader选举:

Leader选举即从大量集群节点中选举一个Leader节点,是zookeeper中最为经典的使用场景,在分布式环境中选举的Leader节点好快会直接影响集群的效率。Leader节点主要负责相同的业务应用分布在不同的机器上共用的逻辑模型和数据的调配,优秀的调配方案可以大大减少重复运算,提高性能降低集群的负载

利用ZooKeeper中两个特性,就可以实施另一种集群中Leader选举:

1)利用ZooKeeper的强一致性,能够保证在分布式高并发情况下节点创建的全局唯一性,即:同时有多个客户端请求创建Leader节点,最终一定只有一个客户端请求能够创建成功。利用这个特性,就能很轻易的在分布式环境中进行集群的Leader选举了。

2)另外,这种场景演化一下,就是动态Leader选举。这就要用到EPHEMERAL_SEQUENTIAL类型节点的特性了,这样每个节点会自动被编号。允许所有请求都能够创建成功,但是创建节点会为每个节点安排顺序,每次选取序列号最小的那个机器作为Leader。

小结

Zookeeper作为Hadoop主要的组件,在集群管理方面为我们提供了解决方案。通过对统一命名服务、配置管理和集群管理的阅读,我们能够清晰的理解Zookeeper的核心内容。针对共享锁和队列服务偏技术实现,有兴趣的可以进一步研究。

Zookeeper在大数据集群中解决集群管理的问题,磨刀不误砍柴工,了解完工具我们下一次分享一些具体的实效应用。

81 自动伸缩监听器
是一个服务代理,它监控和追踪云服务用户和云服务之间的通信,用以动态伸缩
通常部署在靠近防火墙的位置,自动追踪负载状态信息。负载量可以前端请求量或请求引发的后端处理需求量决定。
提供不同类型的响应:如通过预定义参数自动伸缩IT资源或者负载超过或低于阈值时,自动通知云用户。
82 负载均衡器
水平扩展的常见方法就是把负载在更多的IT资源上做负载均衡,与单一IT资源相比,提升了性能和容量。负载均衡器机制是一个运行时代理,其逻辑就是基于这个思想。
负载均衡器可以执行一组特殊的运行时负载分配功能,包括
非对称分配:较大的工作负载被送到具有较强处理能力的IT资源
负载优先级:根据优先等级进行调度、排队、丢弃和分配
上下文感知分配: 根据请求内容的指示吧请求分配到不同IT资源
负载均衡机制可以是
多层网络交换机
专门的硬件设备
专门的基于软件的系统
服务代理
负载均衡器同在位于产生负载的IT资源和负责执行负载IT资源之间的通信路径上
83 SLA监控器
SLA监控器机器被用来专门观察云服务的运行时性能,确保他们履行SLA公布的QoS需求
SLA监控器收集的数据由SLA管理系统处理并集成到SLA报告的标准中。
84 按使用付费监控器
按使用付费监控器机制按照预先定义好的定价参数测量基于云的IT资源使用,并生成使用日志用于计算费用
85 审计监控器
审计监控器机制用来收集网络和IT资源的审计记录数据,用以满足管理需要或合同义务。
86 故障转移系统
故障转移系统通过使用现有的集群技术提供冗余的实现来增加IT资源的可靠性和可用性。
故障转移系统有两种基本的配置
主动-主动:IT资源的冗余实现会主动地同步服务工作负载。当发现故障时,将失效的实例从负载均衡调度器中剔除,有效的IT资源就会接管处理工作。
主动-被动:待机或非活跃的实现会被激活,从不可用的IT资源处接管工作。
87 虚拟机监控器
虚拟机监控器机制是虚拟化基础设施中最基础的部分,主要用来在物理服务器上生成虚拟服务器实例。
88 资源集群
将多个分布的IT资源分为一组,使得他们能像同一个IT资源一样进行 *** 作。这增强了集群化IT化IT资源的组合计算能力、负载均衡能力和可用性。
常用的资源集群类型包括
服务器集群:物理或虚拟服务器组成集群。
数据库集群:用于改进数据的可用性,具有同步的特性,可以维持集群中各种存储设备上存储数据的一致性
大数据集集群:实现了数据的分区和分布
89 多设备代理
一个云服务可能会被大量的云用户访问,他们对主机硬件设备和通信需求都不同。为了克服云服务和不同云服务用户之间的不兼容性,需要创建映射逻辑来改变运行时交换信息
多设备代理来帮助运行时的数据转换,使得云服务能够被更广泛的云用户程序和设备所使用。
多设备代理通常作为网关存在
可创建转化的逻辑层次包括
传输协议
消息协议
存储设备协议
数据模式/数据模型

1云计算的学习内容是什么?本专业主要课程有:Linux *** 作系统应用、虚拟化技术、Java程序设计、OpenStack系统应用、Hadoop分布式应用、数据存储技术、云平台管理系统、云数据中心构建与运维、云存储产品配置与应用、大数据平台和大数据分析、云安全产品配置与应用等。可从事的工作岗位:1云平台管理、服务架设、数据安全维护、性能优化的云平台运维工程师;2基于云应用类软件产品的开发、测试、部署、维护等的云服务应用/开发工程师;3推广销售云计算管理平台和服务器虚拟化软件及云应用软件系统的产品销售工程师;4处理客户的技术咨询,解决常见产品技术问题的技术客服;5为企业或政府搭建云计算管理平台,确保私有云平台顺利上线运行的云平台实施工程师。2云计算前景如何?任何一个行业的存在都需要根据市场的形式。从现代的网络使用来看,市场的形式一片光明。而云计算由于技术更先进,而且在众多内容的摄入上更多,因此在实际的使用中其实更能满足现代的需要。这个云计算能够为很多行业提供服务,即便是我们个人在使用网络的时候也同样需要云计算来辅助。当然云计算能够为各行各业的使用带来适合的形式,因此云计算所概括的行业更多,从前景也更广阔。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13034521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存