您的位置:首页 > 其它

MR推测执行

2015-09-28 16:31 183 查看
mapred.map.tasks.speculative.execution boolean
true 如果任务运行变慢,该属性决定了是否要启动一个map任务的另外一个实力

mapred.reduce.tasks.speculative.execution
boolean true
如果任务运行变慢,该属性决定这是否需要启动一个reduce任务

yarn.app.mapreduce.am.job.speculator.class
class org.apache.hadoop.mapreduce.v2.app.speculate.default.speculator
speculator类实现推测执行策略

yarn.app.mapreduce.am.job.estimator.class
class org.apache.hadoop.mapreduce.v2.app.speculate.LegacyTaskRuntimeEstimator
speculator实力使用TaskRuntime Estimator的实现,提供任务运行时间的估计值(只针对MR)

为什么会想到关闭推测执行呢?

推测执行的目的是减少作业执行时间,但这是以集群效率为代价的, 在一个繁忙的集群中, 推测执行会减少整体的吞吐量,因为冗余的任务执行时会减少作业的执行时间,因此一些集群管理员倾向于在集群上关闭这个选项, 而让用户根据个别的作业需要而开启该功能, hadoop的老版本更加如此

对于reduce任务,关闭推测执行是有益的, 因为任意重复的reduce任务都是必须要去的map输出作为最先的任务, 这坑农会大幅度的增加集群上的网络传输。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: