Hadoop YARN官方介绍

来源:互联网 发布:ubuntu 16.04安装lnmp 编辑:程序博客网 时间:2024/06/16 16:44
Apache Hadoop YARN




YARN基本的思想是将资源管理和作业调度/监控分开。在这个思想下出现了全局ResourceManager(RM)和每个应用的ApplicationMaster(AM)。一个应用要么是一个单独的作业要么是DAG(有向无环图)作业。


ResourceManager和NodeManager组成了数据计算框架。ResourceManager是有在系统中的所有应用程序之间仲裁资源的最终权利。NodeManager是每台机器的框架代理,该代理为容器负责,监控资源的使用(cpu、memory、disk和network),然后向ResourceManager/Scheduler报告。


每个应用程序ApplicationMaster实际上是框架中特定的库,它的任务是与ResourceManager协商资源,并与NodeManager一起执行、监控任务。


ResourceManager有两个主要组件:Scheduler和ApplicationsManager。


Scheduler负责根据容量,队列等限制条件向各种运行的应用程序分配资源。Scheduler是纯粹的调度,他不会监控或者跟踪应用程序的状态。它也不会保证由于应用程序故障或硬件故障而重新启动失败的任务。Scheduler会根据应用程序资源的需求来执行调度。它是基于资源容器的抽象概念,它可以合并像内存、cpu、disk和network等元素。


Scheduler具有可插拔策略,负责对各种队列,应用程序等之间的群集资源进行分区。当前的调度程序(如CapacityScheduler和FairScheduler)都是插件。


ApplicationsManager负责接受作业的提交,协调第一个容器执行应用程序指定的ApplicationMaster,然后提供重启ApplicationMaster容器失败的服务。每个应用程序的ApplicationMaster都有责任从Scheduler协调合适的资源容器,跟踪他们的状态,监控进程。


hadoop-2.x中的MapReduce与以前的稳定版本(hadoop-1.x)保持API兼容性。 这意味着所有MapReduce作业应该仍然在YARN之上运行不变,只需重新编译。


YARN还通过ReservationSystem支持资源预留的概念,该保留系统允许用户指定资源配置文件超时和时间限制(例如最后期限),并保留资源以确保重要工作的可预测执行。预留系统跟踪 资源超时,执行预约的准入控制,并动态指示底层调度程序,以确保预留完全填满。

原创粉丝点击