美文网首页程序员
来说说YARN的前世今生

来说说YARN的前世今生

作者: pstrike | 来源:发表于2018-09-10 21:42 被阅读69次

写在前面。本文并未具体描述YARN的使用细节,而是从YARN出现的背景、解决什么问题、怎么解决这些问题的角度出发,希望帮助已经使用YARN的、刚接触YARN的读者更好的了解YARN。

Hadoop

对于大数据的处理,Hadoop俨然已是业界认可、成熟的数据存储、处理框架。目前,Hadoop经历主要经历了两个版本。在Hadoop v2.0的版本中,YARN被引入,YARN的引入主要是解决了Hadoop v1.0中的一些问题(在下文中将主要探讨)。

YARN要解决什么问题?

在Hadoop v1.0的框架中,对数据的处理、资源调度主要依赖MapReduce完成,具体过程如下所示:

从以上图中,我们可以了解到Hadoop v1.0的数据处理方式。在小规模的数据处理过程中,这套方法没有太大问题。但是,在真实的场景中往往需要处理大量数据,这套方法便会遇到以下问题:

  • 由于大量的数据处理Job提交给Job Tracker,且Job Tracker需要协调的Data Node可能有数千台,Job Tracker极易成为整个系统的性能、可用的瓶颈。

  • 无法有效地调配资源,导致资源分配不均。如以下例子,假设有3台Data Node(DN),每个DN的内存为4GB。用户提交了6个Job,每个Job需要1GB内存进行处理,且数据均在DN#2上。由于DN#2只有4GB内存,所以Job#1-4在DN#2上运行,Job#5和#6则在排队等待。但是,此时DN#1和#3均在闲置的状态下,而未能有效的被利用。

  • 只能接受MapReduce的方式,且技术栈仅为Java。

YARN的解决方案

基于上述问题,Hadoop在2.0版本上推出了YARN (Yet Another Resource Negotiator)。YARN的核心思想是将资源管理和Job的调度/监控进行分离。YARN的架构如下图所示。

YARN的核心组件可以分为两大部分:

  • 全局组件

    • Resource Manager: 作为全局统一的资源管理、调度、分配。Resource Manager由Scheduler和Applicatio Manager组成。Scheduler根据节点的容量、队列情况,为Application分配资源;Application Manager接受用户提交的请求,在节点中启动Application Master,并监控Application Master的状态、进行必要的重启。
    • Node Manager: 在每一个节点上都有一个Node Manager作为代理监控节点的资源使用情况(cpu, memory, disk, network)并向Resource Manager上报节点状态。
  • Per-applicaiton组件

    • Application Master: 负责数据处理job的执行调度。Application Master与Resource Manager进行沟通,获取资源进行计算。得到资源后,与节点上的Node Manager进行沟通,在分配的Container汇总执行任务,并监控任务执行的情况。
    • Container: 资源的一种抽象方式,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当Application Master向Resource Manager申请资源时,Resource Manager为Application Master返回的资源便是Container。

当YARN接受用户提交的Job时,其工作过程为:

YARN通过以下方式,解决了上述问题。

  • 通过Application Master来解决Job Tracker的瓶颈问题。每当新的job提交进来后,Resource Manager会在恰当的节点启动一个新的Application Master,从而避免在Hadoop v1.0中Job Tracker成为性能瓶颈的尴尬。

  • 更有效的进行资源的调度。Resource Manager可以为Application Master分配空余的资源,帮忙Application Master完成任务。

  • 支持MapReduce以外的数据处理方式,例如:Spark等。

YARN的一些问题

即便Hadoop v2.0应用来YARN的设计思路,也仍有一个难题:当大量的job提交、用尽所有计算资源后,新的job要等待很久才能被处理,即便新的job是非常重要的任务,也只能等待。在YARN中,通过scheduler plugin(例如:FIFO Scheduler、Fair Scheduler、Capacity Scheduler)的方式,配置不同的资源调度规则,来尽量缓解该问题,让重要的job可以优先获得资源调配。

Reference


pstrike 2018.08.31 于深圳

【尊重版权:转载之前请先联系我】

相关文章

  • 来说说YARN的前世今生

    写在前面。本文并未具体描述YARN的使用细节,而是从YARN出现的背景、解决什么问题、怎么解决这些问题的角度出发,...

  • 前世今生

    今生的妻子,是前世你埋的人,来报未完的恩~ 今生的儿子,是前世的债主,来追未还的债~ 今生的女儿,是前世的情人,来...

  • 佛说

    今生的妻子, 前世你埋的人, 来还未报的恩。 今生的儿子, 前世你的债主, 来追未还的债。 今生的女儿, 前世你的...

  • 倒计时154

    今生的妻子, 前世你埋的人,来还未报的恩。 今生的儿子, 前世你的债主,来追未还的债。 今生的女儿, 前世你的情人...

  • 渡我不渡她

    佛说, 今生的妻子,前世你埋的人, 来还未报的恩; 今生的儿子,前世你的债主, 来追未还的债; 今生的女儿,前世你...

  • 若无相欠,怎会遇见?

    佛说: 今生的妻子,前世你埋的人,来还未报的恩。今生的儿子,前世你的债主,来追未还的债。今生的女儿,前世你的情人,...

  • 佛说:今生所见,乃是前世所欠

    佛说: 今生的妻子,前世你埋的人,来还未报的恩。 今生的儿子,前世你的债主,来追未还的债。 今生的女儿,前世你的情...

  • 今生前世,因果轮回

    佛说:今生的妻子,前世你埋的人,来还未报的恩。今生的儿子,前世你的债主,来追未还的债。今生的女儿,前世的你的情人,...

  • 佛说……

    佛说,妻子是前世你埋的人! 今生的妻子,前世你埋的人,来还未报的恩 今生的儿子,前世你的债主,来追未还的债 今生的...

  • 说说面膜的「前世今生」

    面膜现如今在护肤品界有多热?比40度的长沙还热! 很多女性可能原液和精华都没用过,但是各种贴片式、涂抹式面膜估计已...

网友评论

    本文标题:来说说YARN的前世今生

    本文链接:https://www.haomeiwen.com/subject/uhmegftx.html