YARN 基本架构之我见
2019-06-11 本文已影响0人
碎岁语
这篇文章是笔者在学习了《Hadoop技术内幕:深入解析 YARN 架构设计与实现原理》部分小节以后的心得体会。
YARN 也是采用 C/S 架构模型的。它的 Master 节点运行着 ResourceManager 进程,负责统一管理各个从节点上的资源。Slave 节点上运行着 NodeManager 进程,负责管理自己节点上的资源与具体的任务执行。
关于 ResourceManager 与 NodeManager 之间的关系有点像是上下级之间一样。NodeManager 负责管理具体的资源与任务执行,而 ResourceManager 只负责管理 NodeManager,通过各 NodeManager 的汇报信息来对整个系统资源运筹帷幄。
YARN 的设计目的是用来执行任务的,每一个任务在 YARN 中都会有一个 ApplicationMaster 来全程跟踪。ApplicationMaster 就是任务的大管家,它会为任务的执行创造出一切基本条件并督促任务的成功执行。
关于系统资源,在 YARN 中是被抽象为一个 Container。每个节点,或者说每个任务能得到多少 CPU 计算力或者内存量,都是被封装在一个 Container 对象中的。Container 毫无疑问是由总官家 ResourceManager 生成的,并且它里面的内容是动态规划的。
YARN 各组件、节点之间的通信也是由 RPC 来实现的。并且它采用的是 pull-based 模式的 RPC 通信模型。
在整个 YARN 架构中,其实就像是一个企业管理层一样,设立有多个职位,不同职位各司其职,一级管理着一级,一级向一级汇报信息,以此实现整个集群系统资源的合理管理。