Apache Hadoop YARN架构

YARN的基本思想时将资源管理功能与作业调度/监控功能划分为单独的服守护进程。实现的思路是设置一个全局ResourceManager(RM)并且为每个应用单独设置一个ApplicationMaster(AM)。一个应用既可以是一个单独的作业,也可以是作业的DAG。

ResourceManager与NodeManager构成了数据计算框架。ResourceManager是系统中所有应用程序的资源仲裁的最终权威。NodeManager是每台机器的框架代理,它对容器负责,监视它们的资源(cpu、内存、磁盘、网络),并且将其报告给ResourceManager/Scheduler。

事实上,每个应用的ApplicationMaster是一个特定框架库,用于协调来自ResourceManager的资源,并且与NodeManager(s)一同执行监控任务。
架构

ResourceManager由两个主要组件:Scheduler与ApplicationsManager。

Scheduler负责根据熟悉的容量、队列等约束将资源分配给给不同的正在运行的应用。Scheduler是纯粹的调度器,即它不监控跟踪应用的状态。而且,它不保证重启由于应用故障或硬件故障进而导致执行失败的任务。Scheduler根据应用的资源需求执行调度功能,它是基于资源Container的抽象概念,它包含内存、CPU、磁盘、网络等元素。

Schedule可插入负责在各个队列、应用等之间划分集群资源的策略。当前的调度器,如CapacityScheduler与FairScheduler都是插件。

ApplicationsManager负责接受作业提交、协商用于执行特定于应用的ApplicationMaster的第一个容器,并且提供在故障时重启ApplicationMaster容器的服务。每个应用的ApplicationMaster负责与Scheduler协商出最合适的资源容器,跟踪它们的状态并且监控进度。

hadoop-2.x的MapReduce维护与过去版本(hadoop-1.x)的API兼容性。这意味着,只需要重新编译,在YARN上运行的所有MapReduce作业都可以保持不变。

YARN通过资源保留系统支持资源保留的概念,该组件允许用于指定资源的时间概况,用于保留资源以确保重要作业的可预测执行。保留系统跟随时间跟踪资源,执行预留的准入控制,并且动态指示底层调度器确保保留被满足。

为了能使YARN超过数千节点的规模,YARN通过YARN Federation特性支持联合的概念。联合可以令多个yarn集群(或子集群)透明地连接在一起,使其看起来像一个庞大的集群。这可以令集群达到相当大的规模,是多个独立的集群可以用于执行庞大的工作,或用于跨所有工作的容量的租户。

翻译源:Hadoop 文档

猜你喜欢

转载自blog.csdn.net/qq_32165041/article/details/83623311