2014-01-09 58 views
3

我正在使用hadoop MapReduce处理大量数据。问题在于,ocassionaly,一个损坏的文件导致Map任务抛出java堆空间错误或类似的东西。Hadoop:你能否默默地丢弃失败的地图任务?

如果可能的话,放弃任何地图任务正在做的事情,杀死它,然后继续工作,不必介意丢失的数据,这将是很好的。我不希望整个M/R工作因此而失败。

这可能在hadoop中,以及如何?

回答

6

您可以修改mapreduce.max.map.failures.percent参数。默认值为0.增加此参数将允许一定比例的地图任务失败,而不会使作业失败。

您可以在mapred-site.xml中设置此参数(将应用于所有作业)或逐个作业(可能更安全)。

+2

请注意,'mapred.max.map.failures.percent'现在已被弃用,您应该使用'mapreduce.max.map.failures.percent'来代替 –