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)
NodeManager(NM)
总结: