- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
hadoop 中的新任务总是比推测任务具有更高的优先级。
谁能告诉我如何以及在何处更改此优先级?
最佳答案
Hadoop Speculator
使用Estimator
来估计任务的运行时间。
控制推测执行的主要配置参数之一是:mapreduce.job.speculative.slowtaskthreshold
(在 mapred-site.xml 中定义,默认设置为 1.0
).
这个参数的定义说:
The number of standard deviations by which a task's ave progress-rates must be lower than the average of all running tasks' for the task to be considered too slow.
这意味着,将每个任务的进度率与作业中所有其他任务的“平均进度率”进行比较,并乘以 mapreduce.job.speculative.slowtaskthreshold
的值。
让我用例子来解释一下:
假设有 5 个 map task 。平均进步率为70%。mapreduce.job.speculative.slowtaskthreshold
的值设置为 1.0。
让我们假设 1 个 map task 运行缓慢且其进度为 50%。因为 (70 x mapreduce.job.speculative.slowtaskthreshold
) = (70 x 1.0) = 70%。因此,50% 小于 70%,因此这个 map 任务将被安排为推测执行(假设 mapreduce.map.speculative
设置为 true
)。
因此,我想要启用积极的推测,您需要将此 mapreduce.job.speculative.slowtaskthreshold
设置为更高的值。
但是,即使在启用积极推测之后,您也无法在原始任务启动后立即启动冗余任务。因为推测执行只有在一些任务已经开始并且当前任务落后时才会出现(Estimator
会将此输入提供给 Speculator
) .因此,也许您必须更改 Speculator
类 (org.apache.hadoop.mapreduce.v2.app.speculate.Speculator
) 才能实现它。
但是,建议不要激进地使用它,因为它可能会饿死其他作业(如果同一作业由于推测执行而占用太多 map/reduce 插槽)。
请查看 QuBole 的这篇文章:http://docs.qubole.com/en/latest/user-guide/hadoop/hadoop1/speculation.html
关于hadoop - Hadoop 中的推测任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34342546/
我是一名优秀的程序员,十分优秀!