博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mapreduce作业reduce被大量kill掉
阅读量:6501 次
发布时间:2019-06-24

本文共 857 字,大约阅读时间需要 2 分钟。

       之前有一段时间。我们的hadoop2.4集群压力非常大。导致提交的job出现大量的reduce被kill掉。同样的job执行时间比在hadoop0.20.203上面长了非常多。这个问题事实上是reduce 任务启动时机的问题因为yarn中没有map slot和reduce slot的概念,且ResourceManager也不知道map task和reduce task之间的依赖关系,因此MRAppMaster自己须要设计资源申请策略以防止因reduce task过早启动照成资源利用率低下和map task因分配不到资源而饿死,然后通过抢占机制。大量reduce任务被kill掉。

MRAppMaster在MRv1原有策略(map task完毕数目达到一定比例后才同意启动reduce task)基础上加入了更为严格的资源控制策略和抢占策略:

1、mapreduce.job.reduce.slowstart.completedmaps

当map 任务完毕的比例达到该值后才会为reduce task申请资源,默认是0.05。

我们设置为0.5,也即map完毕了50%之后在開始为reduce任务申请资源。

2、yarn.app.mapreduce.am.job.reduce.rampup.limit

在map任务完毕之前,最多启动reduce 任务比例,默认是0.5

我们设置为0.2。也即map任务所有完毕前,最多去启动20%的reduce任务。

3、yarn.app.mapreduce.am.job.reduce.preemption.limit

当map task须要资源但临时无法获取资源(比方reduce task执行过程中。部分map task因结果丢失需重算)时,为了保证至少一个map task能够得到资源。最多能够抢占reduce task比例,默认是0.5。

我们用的时默认值。

我们集群通过改动了第一个和第二个參数的默认值,在也没用出现大量reduce被kill的情况了。

參考:

转载地址:http://pztyo.baihongyu.com/

你可能感兴趣的文章
简化代码的微小修改
查看>>
python之CSV文件格式
查看>>
你必须知道的.net学习总结
查看>>
leetcode之Reorder List
查看>>
表格中td限宽溢出以省略号代替
查看>>
Axure8.0 网页 or App 鼠标滚动效果
查看>>
【Visual C++】游戏开发笔记十五 游戏人工智能(一) 运动型游戏AI
查看>>
MYSQL 部分事务
查看>>
SQL Server 一些重要视图3
查看>>
MySQL冷备份的跨操作系统还原
查看>>
django学习笔记【003】创建第一个带有model的app
查看>>
Logback学习笔记1
查看>>
活动|跟着微软一起,拥抱开源吧!
查看>>
freemarker写select组件报错总结(六)
查看>>
嘿,程序员,你该学点经济学了!
查看>>
排序(一)归并、快排、优先队列等(图文具体解释)
查看>>
spark- PySparkSQL之PySpark解析Json集合数据
查看>>
DEDECMS教程:上/下一篇文章标题长度的截取方法
查看>>
文件操作示例脚本 tcl
查看>>
大家好,新年快乐。
查看>>