首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mapreduce:自定义任务输出内存失败

mapreduce:自定义任务输出内存失败
EN

Stack Overflow用户
提问于 2018-04-12 18:55:05
回答 1查看 35关注 0票数 0

我有一个只有地图的作业,作为一个任务的每个文件。有时,文件会导致内存不足的任务类型异常.

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

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

部分成功可能来自于使用mapreduce.reduce.failures.maxpercent设置,这是好的。

但是,当容器在内存不足的情况下失败时,如何将“坏文件”复制到隔离?

我认为一个覆盖taskAbort方法的自定义taskAbort将提供适当的钩子。

以前还有人这么做过吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-13 22:40:01

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

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

  1. 在hdfs上为您的工作创建一个特殊目录
  2. 在mapper安装方法中,获取输入拆分名并将其存储在此目录内的一个特殊标记文件中。
  3. 当映射器成功完成时,在清理方法中删除此标记文件。
  4. 作业完成后,检查目录并处理存在名称的坏文件。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49803993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档