0

默认情况下,hadoop map 任务将处理后的记录写入临时目录中的文件${mapred.output.dir}/_temporary/_${taskid}。这些文件坐在这里,直到 FileCommiter 将它们移动到${mapred.output.dir}(任务成功完成后)。我有一种情况,在setup()地图任务中,我需要在上面提供的临时目录下创建文件,我会在其中编写一些稍后在其他地方使用的与流程相关的数据。但是,当 hadoop 任务被终止时,临时目录会从 HDFS 中删除。

任何人都知道是否可以告诉 Hadoop 在任务被终止后不要删除此目录,以及如何实现?我想应该提供一些我可以配置的属性。

问候

4

1 回答 1

3

依赖临时文件不是一个好习惯,因为临时文件的位置和格式可以在不同版本之间随时更改。

无论如何,设置mapreduce.task.files.preserve.failedtaskstrue将保留所有失败任务的临时文件,设置mapreduce.task.files.preserve.filepattern为任务 ID 的正则表达式将保留匹配模式的临时文件,而与任务成功或失败无关。

于 2011-11-30T16:40:19.300 回答