Speculative Execution in Hadoop MapReduce

1. Hadoop MapReduce中的推测性执行 (备份任务) 目的

在本章中,我们将学习Hadoop推测执行。 Apache Hadoop不能修复或诊断运行缓慢的任务。相反,它会尝试检测任务的运行速度是否低于预期,并启动另一个任务(即备份任务称为推测任务)。这个过程在Hadoop中被称为推测性执行。

我们将讨论推测性执行–Hadoop的一个关键特性可以提高工作效率,Hadoop中推测性执行的需求是什么,推测性执行是有帮助的, 以及如何禁用推测性执行Hadoop的。

2. 什么是Hadoop中的推测性执行?

在Hadoop中,MapReduce将作业分解为任务,并且这些任务并行而非顺序地执行,从而缩短了总体执行时间。 这种执行模式对缓慢的任务很敏感(即使它们数量很少),因为它们会减慢整个工作的执行速度。

任务放慢可能有各种原因,包括硬件退化或软件错误配置,但可能很难检测原因,因为任务仍然成功完成,但需要花费更多的时间而不是预期的时间。 Hadoop不会尝试诊断和修复运行缓慢的任务,而是尝试检测它们并为它们运行备份任务。 这在Hadoop中被称为推测执行。 这些备份任务在Hadoop中称为备份任务。

3. Hadoop中的推测执行如何工作?

现在让我们看看Hadoop推测执行过程。

首先,所有任务都是在Hadoop MapReduce中启动的。对于那些已经运行了一段时间(至少一分钟)的任务,推测性任务会启动,并且平均而言,与其他任务相比,并没有取得任何进展。如果原始任务在推测任务之前完成,则推测任务被终止,另一方面,如果推测任务先完成,原始任务将被终止。

4. 推测性执行是否有益?

Hadoop MapReduce推测性执行在某些情况下是有益的,因为在具有100个节点的Hadoop集群中,硬件故障或网络拥塞等问题很常见,并行或重复的任务会更好,因为我们不会在问题中等待任务去完成。

但是,如果两个重复任务在大约相同的时间启动,则会浪费集群资源。

5. 如何启用或禁用推测执行?

推测性执行是Hadoop中的默认情况下启用的MapReduce作业优化技术。您可以在mapred-site.xml中禁用mappers和reducer的推测执行,如下所示:

<property>
<name>mapred.map.tasks.speculative.execution</name>
<value>false</value>
</property>
<property>
<name>mapred.reduce.tasks.speculative.execution</name>
<value>false</value>
</property>

6. 什么是需要关闭推测性执行?

推测执行的主要工作是减少工作执行时间; 但是,由于重复的任务,集群效率受到影响。 由于在推测执行中正在执行冗余任务,因此这可能会降低整体吞吐量。 出于这个原因,一些集群管理员喜欢关闭Hadoop中的推测性执行。

7. 结论

总而言之,我们可以说推测性执行是Hadoop的关键功能,它可以提高工作效率。 因此,它减少了作业执行时间。

Speculative Execution in Hadoop MapReduce

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 五 = 1