最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

Hadoop新特性、改进、优化和Bug分析系列5:YARN-3

来源:懂视网 责编:小采 时间:2020-11-09 13:21:14
文档

Hadoop新特性、改进、优化和Bug分析系列5:YARN-3

Hadoop新特性、改进、优化和Bug分析系列5:YARN-3:作者: Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址:http://dongxicheng.org/mapreduce-nextgen/hadoop-jira-yarn-3/ 本博客的文章集合:http://dongxicheng.org/recom
推荐度:
导读Hadoop新特性、改进、优化和Bug分析系列5:YARN-3:作者: Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址:http://dongxicheng.org/mapreduce-nextgen/hadoop-jira-yarn-3/ 本博客的文章集合:http://dongxicheng.org/recom

背景介绍

YARN作为一个资源管理系统,主要由两个组件构成,分别是ResourceManager和NodeManager,其中,ResourceManager负责整个集群上资源的管理和分配,而NodeManager则负责单个节点的资源管理和任务启动,这两个组件必须充分发挥各自的作用才能完成资源的有效利用,缺一不可。ResourceManager将资源分配给应用程序的ApplicationMaster,比如将资源分配给appMaster1,而appMaster1则会进一步与node1上的NodeManager通信,启动一个占用1CPU和2GB内存的任务,为了确保该任务“占且仅占”这些资源,NodeManager必须提供合理的隔离机制,提供一个资源容器保证这些资源的前提下,还要防止它多占用资源干扰其他任务。

与之对比,MRv1采用了JVM进行资源隔离,而JVM仅能对内存资源进行限定,其他资源,包括CPU、网络等资源则无法隔离。在资源隔离上,YARN要不MRv1要先进得多。

解决方案

提供资源隔离机制是YARN NodeManager的责任,针对不同的资源,YARN采用了不同的资源隔离机制,而本文涉及到的YARN-3则全面介绍了YARN的资源隔离机制,总结起来,当前YARN针对CPU和内存两种资源提供了隔离机制,其中,CPU采用了CGroups轻量级资源隔离机制,而内存则采用了线程监控的方案。

由于YARN的目标是构建一个通用的资源管理平台,不仅仅限于Java编写的MapReduce这类应用,更多的是非java程序,因此,MRv1基于JVM的资源隔离方案是不可行的。

对于CGroups而言,它可以限制应用程序的内存使用上限,当内存超过某个阈值时,它将直接将其杀死。对于一些应用程序而言,有些情况下会出现内存暴增而又骤降的现象,因此采用硬性限制的策略是缺乏灵活性的,基于这种考虑,YARN仍采用了MRv1中的基于线程监控的方案,该方案启动一个线程监控当前正在运行的任务的进程树,如果发现内存暴增而又骤降,则认为是正常现象,不会将任务杀死,因此,该方案更加友好。

由于CPU资源的多少不会影响任务的生死(只影响任务执行的快慢),因此,YARN采用了CGroups对CPU资源进行隔离,需要注意的是,CGroups采用的是CPU资源下限控制法,该方法是一种公平共享的方法,举个例子,如果一个节点上有8个核(pcore:vcore=1:1),那么如果只运行一个任务(pcore=1),则它最多使用800%的CPU,如果运行2个任务(pcore=1),则每个任务最多可使用400%的CPU,依次类推……

当前,YARN的资源隔离方面还有很多需要改进的地方,比如,支持更细粒度的资源隔离,例如将任务绑定到某个CPU上(已经在做了,使用taskset命令);支持更多类型的资源隔离,比如网络和磁盘IO等(这个依赖于CGroups的发展,当前CGoups在这方面还不完善)。

如何配置?

【注】 配置参数是在https://issues.apache.org/jira/browse/YARN-2中引入的。这部分内容我已在我的博客文章“YARN/MRv2 ResourceManager深入剖析——资源调度器”中进行了详细介绍。

当前YARN支持内存和CPU两种资源类型的管理和分配。当NodeManager启动时,会向ResourceManager注册,而注册信息中会包含该节点可分配的CPU和内存总量,这两个值均可通过配置选项设置(在yarn-site.xml文件中),具体如下:

(1)yarn.nodemanager.resource.memory-mb

该节点可分配的物理内存总量,默认是8*1024MB。

(2)yarn.nodemanager.vmem-pmem-ratio

每单位的物理内存总量对应的虚拟内存量,默认是2.1,表示每使用1MB的物理内存,最多可以使用2.1MB的虚拟内存总量。

(3)yarn.nodemanager.resource.cpu-core(默认是8)

可分配的CPU总个数,默认是8

(4)yarn.nodemanager.vcores-pcores-ratio

为了更细粒度的划分CPU资源,YARN将每个物理CPU划分成若干个虚拟CPU,默认值为2。用户提交应用程序时,可以指定每个任务需要的虚拟CPU个数。在MRAppMaster中,每个Map Task和Reduce Task默认情况下需要的虚拟CPU个数为1,用户可分别通过mapreduce.map.cpu.vcores和mapreduce.reduce.cpu.vcores进行修改(对于内存资源,Map Task和Reduce Task默认情况下需要1024MB,用户可分别通过mapreduce.map.memory.mb和mapreduce.reduce.memory.mb修改)。

(在最新版本中,yarn.nodemanager.resource.cpu-core和yarn.nodemanager.vcores-pcores-ratio两个参数被遗弃,引入一个新参数yarn.nodemanager.resource.cpu-vcore,表示虚拟CPU个数,具体请阅读YARN-782)

为了启用CGroups和内存线程监控,你可以按照该文档” Hadoop MapReduce Next Generation – Cluster Setup”说明进行配置,安装时请一定要先阅读这篇文章:Using YARN with CGroups。

扩展阅读:

(1)“Hook up cgroups CPU settings to the number of virtual cores allocated”:https://issues.apache.org/jira/browse/YARN-600

(2)“CgroupsLCEResourcesHandler tries to write to cgroup.procs”:https://issues.apache.org/jira/browse/YARN-799

(3)“Support CGroup ceiling enforcement on CPU”:https://issues.apache.org/jira/browse/YARN-810

原创文章,转载请注明: 转载自董的博客

本文链接地址: http://dongxicheng.org/mapreduce-nextgen/hadoop-jira-yarn-3/

作者:Dong,作者介绍:http://dongxicheng.org/about/

本博客的文章集合:http://dongxicheng.org/recommend/


Copyright © 2013
This feed is for personal, non-commercial use only.
The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:
)

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

Hadoop新特性、改进、优化和Bug分析系列5:YARN-3

Hadoop新特性、改进、优化和Bug分析系列5:YARN-3:作者: Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址:http://dongxicheng.org/mapreduce-nextgen/hadoop-jira-yarn-3/ 本博客的文章集合:http://dongxicheng.org/recom
推荐度:
标签: bug 系列 分析
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top