Hadoop MapReduce中Mapper/Reducer的设置和清理方法

kee*_*kee 19 hadoop mapreduce

是否分别在每个mapper和reducer任务中调用了setup和cleanup方法?或者他们只是在整个mapper和reducer工作开始时只调用一次?

Chr*_*ite 21

它们被调用用于每个任务,因此如果您运行了20个映射器,则将为每个任务调用setup/cleanup.

一个问题是Mapper和Reducer的标准运行方法没有捕获map/reduce方法的异常 - 所以如果在这些方法中抛出异常,则不会调用清理方法.

  • 人们总是可以在map/reduce中的异常的catch子句中调用cleanup方法.然而,这需要对可能的异常进行智能分析,并使用`try/catch`子句来捕获它们. (4认同)

小智 5

一个澄清是有帮助的.setup/cleanup方法用于初始化和在任务级别清理.在任务中,首先通过调用setup()方法进行初始化,然后完成对map()[或reduce()]函数的所有调用.之后,在退出任务之前,将对cleanup()方法进行另一次单独调用.