gpt4 book ai didi

hadoop - mapreduce:自定义任务内存不足失败

转载 作者:可可西里 更新时间:2023-11-01 16:37:08 41 4
gpt4 key购买 nike

我有一个 map 作业,每个文件作为一个任务运行。有时一个文件会导致任务内存不足类型的异常。

假设一个输入目录有 10 个文件。因此,该工作将有 10 个任务。现在假设 9 个“好”文件会成功,而 1 个“坏”文件会导致内存不足异常。

理想情况下,我希望将一个“坏”文件移动到隔离目录。 9 个“好”文件写入输出。作业成功,但日志中出现警告。

使用 mapreduce.reduce.failures.maxpercent 设置可以部分成功。

但是当容器因内存不足而失败时,如何将“坏文件”复制到隔离区?

我在想一个覆盖 taskAbort 方法的自定义 FileOutputCommitter 将提供适当的钩子(Hook)。

以前有其他人这样做过吗?

最佳答案

我试图在作业历史服务器中找到答案 rest api ,但不幸的是,任务尝试不会存储有关其输入路径的信息。

如果找不到更好的解决方案,可以这样做:

  1. 在 hdfs 上为您的工作创建一个特殊目录
  2. 在映射器设置方法中获取输入的拆分名称并将其存储在该目录内的特殊标记文件中
  3. 当映射器成功完成时,在清理方法中删除这个标记文件
  4. 作业完成后,检查目录并处理坏文件的名称

关于hadoop - mapreduce:自定义任务内存不足失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49803993/

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