是否可以重新启动一个";“杀死”;Hadoop作业从何处停止?

是否可以重新启动一个";“杀死”;Hadoop作业从何处停止?,hadoop,Hadoop,我有一个Hadoop任务,它处理日志文件并报告一些统计数据。由于文件句柄不足,此作业在作业进行到一半时终止。我已经修复了文件句柄的问题,我想知道是否有可能重新启动一个“已终止”的作业。事实证明,没有一个好方法可以做到这一点;一旦作业被终止,就无法重新实例化该作业并在第一次失败之前立即重新开始处理。这可能有一些很好的理由,但我没有资格谈论这个问题 在我自己的例子中,我正在处理一大组日志文件,并将这些文件加载到索引中。此外,我正在创建一个报告的内容,这些文件在同一时间。为了使作业在索引方面更能容忍失

我有一个Hadoop任务,它处理日志文件并报告一些统计数据。由于文件句柄不足,此作业在作业进行到一半时终止。我已经修复了文件句柄的问题,我想知道是否有可能重新启动一个“已终止”的作业。

事实证明,没有一个好方法可以做到这一点;一旦作业被终止,就无法重新实例化该作业并在第一次失败之前立即重新开始处理。这可能有一些很好的理由,但我没有资格谈论这个问题

在我自己的例子中,我正在处理一大组日志文件,并将这些文件加载到索引中。此外,我正在创建一个报告的内容,这些文件在同一时间。为了使作业在索引方面更能容忍失败(这是一种副作用,与Hadoop完全无关),我改变了作业,改为创建许多较小的作业,每个作业处理一大块日志文件。当其中一个作业完成时,它将重命名已处理的日志文件,以便不再对其进行处理。每个作业在运行前等待上一个作业完成


当一个作业失败时,随后的所有作业都会很快失败。简单地解决问题,然后重新提交我的工作,大致上会在处理过程中继续进行。在最坏的情况下,一个作业在失败时完成了99%,该作业将被错误且浪费地重新处理。

您是指启动整个作业还是特定节点的任务?如果某些节点已完成,则应该有它们的输出,并在未完成的任务的补充上运行。但实际上,我发现重新运行整个过程会更好。如果有一个问题,很可能还有其他问题,我几乎不值得从大量的碎屑中筛选出什么是可以补救的。如果你想让它自动发生,似乎这份工作必须为此而设计。在某些情况下,这可能是值得的。如果你能重新启动它,它会发现,哦,我已经完成了那篇文章,那么它可以跳过它。我考虑到整个工作,大约是第三次,我希望不会失去那份工作。我明白你所说的试图提取未经处理的数据,在这一点上,重新运行作业可能会更容易。最重要的是,我想确保我没有忽视一个可以让我重新开始一项枯燥工作的功能。