5.3 推测执行

操作场景

Hadoop发现一个任务运行比预期慢的时候,它会尽量检测,并启动另一个相同的任务作为备份,即“推测执行”(speculative execution)。

推测执行是一种优化措施,并不能使作业运行更可靠。默认启用,但可以单独为map/reduce任务设置,“mapred.map.tasks.speculative.execution”和“mapred.reduce.tasks.speculative.execution”。开启此功能会减少整个吞吐量,在集群中倾向于关闭此选项,而让用户根据个别作业需要开启该功能。

当集群规模很大时(如几百上千台节点的集群),总体软硬件故障的概率就变大了,并且会因此延长整个任务的执行时间(跑完的任务都在等出问题的机器跑结束)。推测执行通过将一个task分给多台机器跑,取先运行完的那个,会很好的解决这个问题。由于会额外占用资源,对于小集群,不建议使用此功能。

操作步骤

参数名 描述
mapreduce.map.speculative客户端参数 是否开启map的推测执行。默认为false表示关闭。
mapreduce.reduce.speculative客户端参数 是否开启reduce的推测执行。默认为false表示关闭。

results matching ""

    No results matching ""