1. 推测式执行:
如果jobtracker 发现有拖后的任务,会再启动一个相同的备份任务,然后哪个先执行完就会去kill掉另一个,因此会在监控页面上经常能看到正常执行完的作业会有被kill掉的任务。
2.推测式执行缺省打开,但如果是代码问题,并不能解决问题,而且会使集群更慢,通过在mapred-site.xml 配置文件中设置 mapred.map.tasks.speculative.execution 和mapred.reduce.tasks.speculative.execution 可为map任务或reduce 任务开启或关闭推测式执行,
3.重用jvm.
可以省去启动新的jvm 消耗的时间.在 mapred-site.xml 配置文件中设置mapred.job.reuse.jvm.num.tasks 设置单个jvm 上最大的任务数(1,> 1 或者-1 表示没有限制);
4.忽略模式
任务在读取数据失败2次后,会把数据位置告诉jobtracker ,然后重新启动该任务并且在遇到所记得坏数据时直接跳过,(缺省关闭,用SkipBadRecord方法打开)