您的位置:首页 > 运维架构

对hadoop版本YARN的一点理解

2013-10-31 11:00 288 查看
YARN本质上是Hadoop的新操作系统,突破了MapReduce框架的性能瓶颈。通过YARN管理集群的资源请求,Hadoop从一个单一应用程序系统升级成为一个多应用程序的操作系统。

其应用程序类型包括机器学习,图像分析,流分析和互动查询功能等。一旦YARN全面投入使用,开发者将能通过YARN“操作系统”将存储在HDFS中的数据用于这些应用程序,所提供的框架不止mapreduce,还包括图算法处理框架(Apache Giraph)、基于BSP模型的分布式计算框架(Apache HAMA)、高性能计算函数库(Open MPI),HBase等。YARN是一个真正的Hadoop资源管理器,允许多个应用程序同时、高效地运行在一个的集群上。有了YARN,Hadoop将是一个真正的多应用程序平台,可服务于整个企业

下面是YARN的框架图:



其中ResourManager负责资源管理(之前版本的jobtracker),将资源分配给各个应用程序,类似于windows操作系统的资源管理,有两个主要的组件:Scheduler(调度器)和ApplicationManager(应用程序管理器)。Scheduler负责给应用程序分配资源,是一种纯碎的调度,不参与监控和跟踪应用程序的状态,也不负责重启,根据应用程序的资源需求(封装在一个抽象的资源概念container中:包括执行该应用程序所需的内存、cpu、硬盘、网络等)来分配资源,分配资源时根据优先级分配,如果relax_locality设置为true(默认情况下),则寻找匹配资源的顺序是本节点--》同一机架上其他节点--》其他机架,若设为false,则只能在该节点分配资源

ApplicationManager负责接收作业提交,将应用程序分配给具体的ApplicationMaster(AM),并负责重启AM。

AM实际上是一个详细的框架库,它结合从ResourceManager获得的资源和NodeManager协同工作来运行和监控任务,同时负责向Scheduler请求适当的资源容器,跟踪它们的使用状态并监控其进展。

NodeManager(以前版本的tasktracker)主要负责启动应用所需的容器,监控容器内资源的使用情况并将结果汇报给调度器,是每个节点上的框架代理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: