YARN工作原理 YARN调度器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YARN工作原理 YARN调度器相关的知识,希望对你有一定的参考价值。

参考技术A

旧的MapReduce架构

在Hadoop2.0中, YARN负责管理MapReduce中的资源(内存, CPU等)并且将其打包成Container. 这样可以精简MapReduce, 使之专注于其擅长的数据处理任务, 将无需考虑资源调度. YARN会管理集群中所有机器的可用计算资源. 基于这些资源YARN会调度应用(比如MapReduce)发来的资源请求, 然后YARN会通过分配Container来给每个应用提供处理能力

在Hadoop集群中,平衡内存(RAM)、处理器(CPU核心)和磁盘的使用是至关重要的,合理规划以免某一项引起瓶颈制约。一般的建议是,一块磁盘和一个CPU核心上配置两个Container会达到集群利用率的最佳平衡,Container是YARN中处理能力的基本单元, 是对内存, CPU等的封装
从可用的硬件资源角度看,要调整群集每个节点Yarn和MapReduce的内存配置到合适的数据,应注意以下几个重要的元素:

保留内存=保留系统内存+保留HBase内存(如果HBase是在同一个节点)
下面的计算是确定每个节点的Container允许的最大数量。
Container数量=min (2 CORES, 1.8 DISKS, (可用内存)/最低Container的大小)
最低Container的大小 这个值是依赖于可用的RAM数量——在较小的存储节点,最小的Container的大小也应较小。下面的表列出了推荐值:

最后计算的每个Container的内存大小是

每个Container的内存大小 = max(最小Container内存大小, (总可用内存) /Container数))

YARN 的核心就是将jobTracker的功能进行拆解,分成了资源管理和任务调度监控两个进程,一个全局的资源管理和每个作业的管理。ResourceManager和Nodemanager提供了计算资源的分配和管理,ApplicationMaster负责完成程序的运行.YARN架构下形成了一个通用的资源管理平台和一个通用的应用计算平,避免了旧架构的单点问题和资源利用率问题,同时也让在其上运行的应用不再局限于MapReduce形式

理想情况下,我们应用对 Yarn 资源的请求应该立刻得到满足,但现实情况资源往往是
有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到
相应的资源。在Yarn中,负责给应用分配资源的就是Scheduler。其实调度本身就是一个
难题,很难找到一个完美的策略可以解决所有的应用场景。为此Yarn提供了多种调度器
和可配置的策略供我们选择。在 Yarn 中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,Fair Scheduler。

以上是关于YARN工作原理 YARN调度器的主要内容,如果未能解决你的问题,请参考以下文章

Linux企业运维——Hadoop大数据平台(上)Hadoop工作原理部署资源管理器Yarn

YARN公平调度器-原理和入门配置

YARN公平调度器-原理和入门配置

yarn工作流程

Yarn工作原理和作业提交过程(图形化通俗易懂)

再次整理关于hadoop中yarn的原理及运行