0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Hadoop的YARN资源管理系统

汽车玩家 来源:今日头条 作者:不一样的程序猿 2020-03-15 17:00 次阅读

1.YARN

本质上是资源管理系统。YARN提供了资源管理和资源调度等机制

1.1原 Hadoop MapReduce 框架

对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储及处理框架,对于 Hadoop 框架的介绍在此不再累述,读者可参考 Hadoop 官方简介。使用和学习过老 Hadoop 框架(0.20.0 及之前版本)的同仁应该很熟悉如下的原 MapReduce 框架图:

1.2Hadoop 原 MapReduce 架构

Hadoop的YARN资源管理系统

从上图中可以清楚的看出原 MapReduce 程序的流程及设计思路:

首先用户程序 (JobClient) 提交了一个 job,job 的信息会发送到 Job Tracker 中,Job Tracker 是 Map-reduce 框架的中心,他需要与集群中的机器定时通信 (heartbeat), 需要管理哪些程序应该跑在哪些机器上,需要管理所有 job 失败、重启等操作。

TaskTracker 是 Map-reduce 集群中每台机器都有的一个部分,他做的事情主要是监视自己所在机器的资源情况。

TaskTracker 同时监视当前机器的 tasks 运行状况。TaskTracker 需要把这些信息通过heartbeat 发送给 JobTracker,JobTracker 会搜集这些信息以给新提交的 job 分配运行在哪些机器上。上图虚线箭头就是表示消息的发送 - 接收的过程。(JobTracker 一个很大的负担就是监控 job 下的 tasks 的运行状况)

可以看得出原来的 map-reduce 架构是简单明了的,在最初推出的几年,也得到了众多的成功案例,获得业界广泛的支持和肯定,但随着分布式系统集群的规模和其工作负荷的增长,原框架的问题逐渐浮出水面,主要的问题集中如下:

JobTracker 是 Map-reduce 的集中处理点,存在单点故障。

JobTracker 完成了太多的任务,造成了过多的资源消耗,当 map-reduce job 非常多的时候,会造成很大的内存开销,潜在来说,也增加了 JobTracker fail 的风险,这也是业界普遍总结出老 Hadoop 的 Map-Reduce 只能支持 4000 节点主机的上限。

在 TaskTracker 端,以 map/reduce task 的数目作为资源的表示过于简单,没有考虑到 cpu/ 内存的占用情况,如果两个大内存消耗的 task 被调度到了一块,很容易出现 OOM。

在 TaskTracker 端,把资源强制划分为 map task slot 和 reduce task slot, 如果当系统中只有map task 或者只有 reduce task 的时候,会造成资源的浪费,也就是前面提过的集群资源利用的问题。

源代码层面分析的时候,会发现代码非常的难读,常常因为一个 class 做了太多的事情,代码量达 3000 多行,,造成 class 的任务不清晰,增加 bug 修复和版本维护的难度。

从操作的角度来看,现在的 Hadoop MapReduce 框架在有任何重要的或者不重要的变化 ( 例如 bug 修复,性能提升和特性化 ) 时,都会强制进行系统级别的升级更新。更糟的是,它不管用户的喜好,强制让分布式集群系统的每一个用户端同时更新。这些更新会让用户为了验证他们之前的应用程序是不是适用新的 Hadoop 版本而浪费大量时间。

1.3新 Hadoop Yarn 框架原理及运作机制

从业界使用分布式系统的变化趋势和 hadoop 框架的长远发展来看,MapReduce 的JobTracker/TaskTracker 机制需要大规模的调整来修复它在可扩展性,内存消耗,线程模型,可靠性和性能上的缺陷。在过去的几年中,hadoop 开发团队做了一些 bug 的修复,但是最近这些修复的成本越来越高,这表明对原框架做出改变的难度越来越大。

为从根本上解决旧 MapReduce 框架的性能瓶颈,促进 Hadoop 框架的更长远发展,从 0.23.0 版本开始,Hadoop 的 MapReduce 框架完全重构,发生了根本的变化。新的 Hadoop MapReduce 框架命名为 MapReduceV2 或者叫 Yarn,其架构图如下图所示:

图 2. 新的 Hadoop MapReduce 框架(Yarn)架构

新的 Hadoop MapReduce 框架(Yarn)架构

重构根本的思想是将JobTracker 两个主要的功能分离成单独的组件,这两个功能是资源管理和任务调度 / 监控。新的资源管理器全局管理所有应用程序计算资源的分配,每一个应用的ApplicationMaster 负责相应的调度和协调。一个应用程序无非是一个单独的传统的MapReduce 任务或者是一个 DAG( 有向无环图 ) 任务。ResourceManager 和每一台机器的节点管理服务器能够管理用户在那台机器上的进程并能对计算进行组织。

事实上,每一个应用的 ApplicationMaster 是一个详细的框架库,它结合从ResourceManager 获得的资源和 NodeManager 协同工作来运行和监控任务。

上图中ResourceManager支持分层级的应用队列,这些队列享有集群一定比例的资源。从某种意义上讲它就是一个纯粹的调度器,它在执行过程中不对应用进行监控和状态跟踪。同样,它也不能重启因应用失败或者硬件错误而运行失败的任务。

ResourceManager 是基于应用程序对资源的需求进行调度的 ; 每一个应用程序需要不同类型的资源因此就需要不同的容器。资源包括:内存,CPU,磁盘,网络等等。可以看出,这同现Mapreduce 固定类型的资源使用模型有显著区别,它给集群的使用带来负面的影响。资源管理器提供一个调度策略的插件,它负责将集群资源分配给多个队列和应用程序。调度插件可以基于现有的能力调度和公平调度模型。

上图中NodeManager 是每一台机器框架的代理,是执行应用程序的容器,监控应用程序的资源使用情况 (CPU,内存,硬盘,网络 ) 并且向调度器汇报。

每一个应用的ApplicationMaster 的职责有:向调度器索要适当的资源容器,运行任务,跟踪应用程序的状态和监控它们的进程,处理任务的失败原因。

新旧 Hadoop MapReduce 框架比对

让我们来对新旧 MapReduce 框架做详细的分析和对比,可以看到有以下几点显著变化:

首先客户端不变,其调用 API接口大部分保持兼容,这也是为了对开发使用者透明化,使其不必对原有代码做大的改变 ( 详见 2.3 Demo 代码开发及详解),但是原框架中核心的JobTracker 和 TaskTracker 不见了,取而代之的是 ResourceManager, ApplicationMaster 与NodeManager 三个部分。

我们来详细解释这三个部分,首先 ResourceManager 是一个中心的服务,它做的事情是调度、启动每一个 Job 所属的 ApplicationMaster、另外监控 ApplicationMaster 的存在情况。细心的读者会发现:Job 里面所在的 task 的监控、重启等等内容不见了。这就是 AppMst 存在的原因。ResourceManager 负责作业与资源的调度。接收 JobSubmitter 提交的作业,按照作业的上下文 (Context) 信息,以及从 NodeManager 收集来的状态信息,启动调度过程,分配一个 Container 作为 App Mstr

NodeManager 功能比较专一,就是负责 Container 状态的维护,并向 RM 保持心跳。

ApplicationMaster 负责一个 Job 生命周期内的所有工作,类似老的框架中 JobTracker。但注意每一个 Job(不是每一种)都有一个 ApplicationMaster,它可以运行在 ResourceManager 以外的机器上。

1.4Yarn 框架相对于老的 MapReduce 框架什么优势呢?

我们可以看到:

这个设计大大减小了 JobTracker(也就是现在的 ResourceManager)的资源消耗,并且让监测每一个 Job 子任务 (tasks) 状态的程序分布式化了,更安全、更优美。

在新的 Yarn 中,ApplicationMaster 是一个可变更的部分,用户可以对不同的编程模型写自己的 AppMst,让更多类型的编程模型能够跑在 Hadoop 集群中,可以参考 hadoop Yarn 官方配置模板中的 mapred-site.xml 配置。

对于资源的表示以内存为单位 ( 在目前版本的 Yarn 中,没有考虑 cpu 的占用 ),比之前以剩余 slot 数目更合理。

老的框架中,JobTracker 一个很大的负担就是监控 job 下的 tasks 的运行状况,现在,这个部分就扔给 ApplicationMaster 做了,而 ResourceManager 中有一个模块叫做 ApplicationsMasters( 注意不是 ApplicationMaster),它是监测 ApplicationMaster 的运行状况,如果出问题,会将其在其他机器上重启。

Container 是 Yarn 为了将来作资源隔离而提出的一个框架。这一点应该借鉴了 Mesos 的工作,目前是一个框架,仅仅提供 java 虚拟机内存的隔离 ,hadoop 团队的设计思路应该后续能支持更多的资源调度和控制 , 既然资源表示成内存量,那就没有了之前的 map slot/reduce slot 分开造成集群资源闲置的尴尬情况。

新的 Yarn 框架相对旧 MapRduce 框架而言,其配置文件 , 启停脚本及全局变量等也发生了一些变化,主要的改变如下:

1.5配置文件

安装完成后的Hadoop默认配置就可以启动,但其工作于本地模式;为了interwetten与威廉的赔率体系 hadoop集群的工作环境,完成配置测试,MarReduce程序测试等工作,可以配置其在单台主机模拟提供分布式的hadoop,即伪分布式。

hadoop的配置共有四种级别:集群、进程、作业和单独操作,前两类由集群管理员负责配置,后面的两类则属于程序员的工作范畴。

hadoop的配置文件位于conf目录中,其中的core-site.xml、mapred-site.xml和hdfs-site.xml三个配置文件最为关键。

core-site.xml用于配置hadoop集群的特性,它作用于全部进程及客户端。mapred-site.xml配置mapreduce集群的工作属性。

hdfs-site.xml配置hdfs集群的工作属性。

此三个文件均为XML格式,其每个属性配置请求格式如下:

some.property.name

some-value

另外还有三个配置文件需要留意。hadoop-env.sh是Hadoop的多个脚本执行时source的配置信息,其用于为Hadoop指定运行时使用的JDK、各进程的JDK属性、PID文件及日志文件的保存目录等。masters则用于指定辅助名称节点(SecondaryNameNode)的主机名或主机地址,slaves用于指定各从服务器(TaskTracker或DataNode)的主机名或主机地址。对伪分布式的Hadoop集群来讲,这些节点均为本机。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Hadoop
    +关注

    关注

    1

    文章

    90

    浏览量

    15982
  • 大数据
    +关注

    关注

    64

    文章

    8886

    浏览量

    137432
收藏 人收藏

    评论

    相关推荐

    安富利中国2024年获多项人力资源管理大奖

    安富利中国在2024年再度展现了其在人力资源管理、职场环境等方面的卓越实力,接连荣获多项大奖。
    的头像 发表于 12-24 17:38 296次阅读

    遥感威廉希尔官方网站 在水资源管理中的应用

    资源是地球上最宝贵的自然资源之一,对于维持生态平衡、保障人类生活和经济发展至关重要。随着人口增长、城市化进程和气候变化的影响,水资源管理面临着前所未有的挑战。遥感威廉希尔官方网站 作为一种先进的监测手段,为
    的头像 发表于 12-05 10:26 273次阅读

    顶坚单北斗智能手持终端如何赋能林业资源管理

    在智慧林业的新纪元里,顶坚单北斗智能手持终端正以其卓越的定位精度、高效的数据采集与处理能力,以及智能化的信息分析功能,成为赋能林业资源管理的关键工具。它不仅极大提升了森林巡护的效率与精确度,还通
    的头像 发表于 11-29 11:29 394次阅读
    顶坚单北斗智能手持终端如何赋能林业<b class='flag-5'>资源管理</b>

    电子水尺传感器:水资源管理的智慧工具

    在水资源管理的舞台上,电子水尺传感器以其卓越的性能和广泛的应用前景,成为了不可或缺的智慧工具。它集成了高精度测量、实时监测与预警功能于一体,正在悄然改变我们对水资源管理的认知和实践。 一、电子水尺
    的头像 发表于 11-18 08:54 200次阅读

    SL427协议接入水资源管理平台解决方案

    和可操作性,对水资源监测系统建设和管理的规范性、系统集成运维的经济性以及水资源监测数据采集、传输的质量保证起到重要作用。 对此,数之能提供实
    的头像 发表于 08-19 15:49 251次阅读

    微软宣布将逐步淘汰Azure数据资源管理器的虚拟网络注入功能

    微软于7月23日正式发布了一则重要公告,宣布了其将废弃Azure数据资源管理器的虚拟网络注入(VNET Injection)功能的计划。这一变动旨在解决当前功能所存在的一系列限制与挑战,并推动用户向更加高效、灵活的网络安全架构迁移。
    的头像 发表于 07-23 14:25 398次阅读

    网络资源管理的新宠:洛杉矶裸机云多IP服务器深度解析!

    在数字化时代,互联网的快速发展和应用场景的不断扩大,使得传统的单IP服务器已经无法满足用户对网络资源管理的需求。而洛杉矶裸机云多IP服务器,以其独特的优势,成为了众多企业和个人用户的首选。Rak部落小编为您整理发布洛杉矶裸机云多IP服务器深度解析。
    的头像 发表于 07-18 09:38 231次阅读

    鸿蒙开发接口资源管理:【@ohos.resourceManager (资源管理)】

    资源管理模块,根据当前configuration(语言,区域,横竖屏,mccmnc)和device capability(设备类型,分辨率)提供获取应用资源信息读取接口。
    的头像 发表于 06-03 15:10 1130次阅读
    鸿蒙开发接口<b class='flag-5'>资源管理</b>:【@ohos.resourceManager (<b class='flag-5'>资源管理</b>)】

    罗德与施瓦茨通过NTN NB-IoT射频和无线资源管理一致性测试用例的TPAC认证

    在最近举行的全球认证论坛(GCF)一致性协议组(CAG)第78次会议上,罗德与施瓦茨(以下简称“R&S”)验证了射频(RF)和无线资源管理(RRM)的NTN NB-IoT测试用例,成功满足了所有的测试平台认证标准(TPAC)。
    的头像 发表于 05-23 16:13 784次阅读
    罗德与施瓦茨通过NTN NB-IoT射频和无线<b class='flag-5'>资源管理</b>一致性测试用例的TPAC认证

    鸿蒙OS开发:【一次开发,多端部署】(资源管理器)解析

    ,使用[@ohos.resourceManager.d.ts] 中的接口,展示了格式化字符串查询、基于指定屏幕分辨率查询媒体资源、获取系统资源管理对象等基础功能,以及展示了资源静态overlay以及运行时overlay的特性功能
    的头像 发表于 05-21 15:59 1078次阅读
    鸿蒙OS开发:【一次开发,多端部署】(<b class='flag-5'>资源管理</b>器)解析

    才茂智能闸门远程控制系统,让水资源管理更“智慧”

    低,资源严重浪费。为提高用水管理效率,安全供水、提高供水质量,才茂从用户需求出发,深入分析水利信息化现状,结合自身多年行业威廉希尔官方网站 创新及项目实施经验,推出智能闸门控制系统,充分利用物联网通讯威廉希尔官方网站 、数字孪生技
    的头像 发表于 05-16 09:07 388次阅读
    才茂智能闸门远程控制<b class='flag-5'>系统</b>,让水<b class='flag-5'>资源管理</b>更“智慧”

    水表集中抄表系统:智能化时代的水资源管理

    1.系统简述水表集中抄表系统是当代城市水资源保护的重要方式,它利用先进的信息科技,完成了对很多水表数据信息的远程、即时、自动化威廉希尔官方网站 抄表,大大提高了工作效率,降低了人为失误。该系统不但优
    的头像 发表于 05-11 14:18 392次阅读
    水表集中抄表<b class='flag-5'>系统</b>:智能化时代的水<b class='flag-5'>资源管理</b>

    OpenHarmony实例:【资源管理器】

    ,使用[@ohos.resourceManager.d.ts]中的接口,展示了格式化字符串查询、基于指定屏幕分辨率查询媒体资源、获取系统资源管理对象等基础功能,以及展示了资源静态overlay以及运行时overlay的特性功能。
    的头像 发表于 04-09 15:10 470次阅读
    OpenHarmony实例:【<b class='flag-5'>资源管理</b>器】

    鸿蒙ArkUI声明式学习:【UI资源管理

    OpenHarmony 应用的资源分类和资源的访问以及应用开发使用的像素单位以及各单位之间相互转换的方法。
    的头像 发表于 04-08 22:08 776次阅读
    鸿蒙ArkUI声明式学习:【UI<b class='flag-5'>资源管理</b>】

    MacOS版Photomator引入全新文件资源管理器,支持非破坏性编辑等强大功能

    新版文件资源管理器为Photomator用户提供便捷,支持通过简单的拖放操作导入文件夹及照片,亦能轻松分享和搜索本地文件。其适应APFS苹果文件系统,避免对图片进行编目或复制,大大节约了存储空间。
    的头像 发表于 02-23 11:08 555次阅读