我有一个只有地图的作业,作为一个任务的每个文件。有时,文件会导致内存不足的任务类型异常.
假设一个输入目录有10个文件。因此,该作业将有10个任务。现在假设9个“好”文件将成功,1个“坏”文件将导致内存不足的异常。
理想情况下,我希望一个“坏”文件移动到隔离目录。这9个“好的”文件写输出。作业成功,日志中有警告。
部分成功可能来自于使用mapreduce.reduce.failures.maxpercent设置,这是好的。
但是,当容器在内存不足的情况下失败时,如何将“坏文件”复制到隔离?
我认为一个覆盖taskAbort方法的自定义taskAbort将提供适当的钩子。
以前还有人这么做过吗?
发布于 2018-04-13 22:40:01
我试图在作业历史服务器rest中找到答案,但不幸的是,任务尝试没有存储有关其输入路径的信息。
如果找不到更好的解决方案,可以这样做:
https://stackoverflow.com/questions/49803993
复制相似问题