gpt4 book ai didi

hadoop - map task 的输入拆分来自不同的节点以及当前节点

转载 作者:行者123 更新时间:2023-12-02 20:10:31 24 4
gpt4 key购买 nike

我了解到,出于优化原因, map task 通常在同一节点上的数据上运行。但是在我的作业跟踪器(“hadoop管理”页面)中,我可以看到正在运行的 map task (例如node1)的输入拆分位置来自node3,node1和node4。我总共生成了10个 map task ,对于其中的某些任务,输入拆分位置指​​向除 map task 节点之外的3个不同节点。这是常见且可以吗?这与我将输入文件加载到hdfs中以及它们在群集中平均分布的方式有关吗?如果这样做不行,我如何确保 map task 尽可能从同一节点选取数据?

最佳答案

您的某些任务比其他任务花费的时间更长吗?如果是这种情况,speculative execution就会出现在图片中,这可能是其背后的原因。

任务可能由于各种原因而变慢,包括硬件降级或软件配置错误,但是由于任务仍然成功完成(尽管比预期的时间长),因此可能难以发现原因。 Hadoop不会尝试诊断和修复运行缓慢的任务;相反,它尝试检测某个任务的运行速度是否比预期的慢,并启动另一个等效的任务作为备份。这称为任务的speculative execution

默认情况下,推测执行是打开的。但是,可以在整个群集范围内或在每个作业的基础上针对 map task 和 reduce task 分别启用或禁用它。

希望这能回答问题。

附言:投机执行是一种优化,不是使作业更可靠地运行的功能。如果存在有时会导致任务挂起或放慢速度的错误,那么依靠推测性执行来避免这些问题是不明智的,并且将无法可靠地运行,因为相同的错误可能会影响推测性任务。您应该修复该错误,以使任务不会挂起或放慢速度。

关于hadoop - map task 的输入拆分来自不同的节点以及当前节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16438866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com