【发布时间】:2013-10-22 16:46:03
【问题描述】:
我在 HDFS 上有很多包含大量文本文件的 tar.gz 文件的日常文件夹。
其中一些 tar.gz 被发现已损坏,并导致 hive/mapreduce 作业在处理这些文件时因“意外的流结束”而崩溃。
我确定了其中的一些并使用 tar -zxvf 对其进行了测试。他们确实以错误退出,但在此之前仍会提取相当数量的文件。
有没有办法在 tar/gz 文件损坏时停止 hive/mapreduce 作业以简单地崩溃?
我已经测试了一些错误跳过和容错参数,例如
mapred.skip.attempts.to.start.skipping,
mapred.skip.map.max.skip.records,
mapred.skip.mode.enabled,
mapred.map.max.attempts,
mapred.max.map.failures.percent,
mapreduce.map.failures.maxpercent.
它在少数情况下有助于处理完整的文件夹而不会崩溃,但大多数情况下这会导致作业挂起并且根本无法完成。
解压缩hadoop外部的每个文件只是为了在之后重新压缩它们(以获得干净的gzip文件)然后再次上传到hdfs将是一个非常痛苦的过程(因为额外的步骤和大量的数据会产生)
是否有人找到了更清洁/更优雅的解决方案?
感谢您的帮助。
【问题讨论】:
标签: hadoop error-handling hive corrupt