gpt4 book ai didi

hadoop - 获取导致 MapReduce 作业崩溃的数据

转载 作者:可可西里 更新时间:2023-11-01 15:07:11 24 4
gpt4 key购买 nike

在很多情况下,我正在编写数据处理程序,并且只有在较大的数据集上才会发现新错误。例如,考虑一个脚本在 1 亿条记录中有 1 条崩溃(由于意外输入或其他原因);如果我在一小部分数据样本上开发它,我就不会看到那个错误。我所能做的就是盯着 Hadoop 的错误日志,调整脚本,然后重新运行整个作业。这在计算和开发时间方面都非常低效。

我想要的是一种下载脚本崩溃时正在处理的数据段的方法。

有没有一种简单的方法可以将其从 Hadoop 中移除? (理想情况下,Hadoop Streaming?)

几年前,我学到了一些可怕的技巧,通过挖掘 Hadoop 本身创建的临时目录...虽然这似乎不是一个好的解决方案,但我希望现在有更好的东西。

最佳答案

What I'd like is a way to download the segment of data the script was processing when it crashed.

“keep.failed.task.files”描述是“应该保留失败任务的文件。这应该只用于失败的作业,因为存储永远不会被回收。它还可以防止映射输出被在它们被消耗时从 reduce 目录中删除。”

默认为假。将此属性更改为 true,数据应该在任务失败时可用。可以将数据获取到开发人员机器和程序 debugged在 Eclipse 中很容易。

All I can do is stare at the Hadoop's error logs, tweak the script, then re-run the entire job. This is horribly inefficient in both compute and developer time.

此外,当 Hadoop 作业遇到错误记录并且任务崩溃时,可以忽略该记录并重新运行 map/reduce 任务。无需再次运行完整的作业。检查这个Hadoop documentation了解更多详情。

关于hadoop - 获取导致 MapReduce 作业崩溃的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13110981/

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