zoomkeeper / Yarn

来源:互联网 发布:township无限绿钞mac 编辑:程序博客网 时间:2024/05/16 15:15


1. zoomkeeper技术架构:

分布式应用程序协调器,是为分布式应用提供一致性的服务软件。

配置维护,域名服务,分布式同步,组服务。



leader(server) + follower(server) + observer(server) + client


zoomkeeper逻辑流程:

Zookeeper的核心是原子广播,这个原子广播机制保证了各个Server之间的同步。实现这个原子广播机制的协议叫做Zab协议。Zab协议有两种行为模式,它们分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,通过复杂的选主流程,当领导者被选举出来,通过原子广播让大多数Server和leader完成状态同步,恢复模式就结束了。


选主:



参考:

http://www.cnblogs.com/yuyijq/p/3391945.html

http://www.cnblogs.com/yuyijq/p/3424473.html

http://www.cnblogs.com/yuyijq/p/3438829.html

http://www.cnblogs.com/yuyijq/p/4115589.html

http://www.cnblogs.com/yuyijq/p/4116365.html

http://www.cnblogs.com/yuyijq/p/4117634.html

http://cailin.iteye.com/blog/2014486/

http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/


疑问:


总结:



2. Yarn技术架构:

是一个资源管理系统,为上层应用提供统一的资源管理和调度。是下一代Hadoop的计算平台。

ResourceManager( RM )[调度器(Scheduler)和应用程序管理器(Applications Manager,ASM)] +


ApplicationMaster(AM) + NodeManager(NM) + Container


有集中式机构和双层调度架构;


Yarn逻辑流程:

YARN在运行时,首先会收到一个包含应用程序的客户请求。ResourceManager协商打包一个容器的必要自愿,然后启动一个表示已提交的应用程序的ApplicationMaster,通过资源请求协议,ApplicationMaster从RM那里协商每个节点上应用程序所需要的资源容器。程序执行时,ApplicationMaster监视容器直到完成。NodeManager监视节点上程序的状态并与RM保持心跳,同时监视容器Container。当应用程序完成时,ApplicationMaster从RM注销容器,执行周期完成。



疑问:

这些组件是部署在那部机器上?


NodeManager和ApplicationMaster的区别在那里?

NodeManager的任务比较单一,就是负责Container状态的维护和跟RM保持心跳。(这里保持心跳是对所有应用和任务以及task都做心跳么还是只对这台机器 ??)

ApplicationMaster 负责Job生命周期内的所有工作,运行在ResourceManager以外的其它机器上。请求Container是ApplicationMaster的活。

ApplicationMaster(AM)

用户提交的每个应用程序均包含一个AM,主要功能包括:
与RM调度器协商以获取资源(用Container表示);
将得到的任务进一步分配给内部的任务(资源的二次分配);
与NM通信以启动/停止任务;
监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。
当前YARN自带了两个AM实现,一个是用于演示AM编写方法的实例程序distributedshell,它可以申请一定数目的Container以并行运行一个Shell命令或者Shell脚本;另一个是运行MapReduce应用程序的AM—MRAppMaster。
注:RM只负责监控AM,在AM运行失败时候启动它,RM并不负责AM内部任务的容错,这由AM来完成。

NodeManager(NM)

NM是每个节点上的资源和任务管理器,一方面,它会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态;另一方面,它接收并处理来自AM的Container启动/停止等各种请求。



总结:














0 0
原创粉丝点击