(1)如何获取当前split的文件名:
答案:
InputSplit split=context.getInputSplit();
String filename=((FileSplit)split).getPath().toString();
(2)Task attempt failed to report status for xxx seconds Killing问题(常见是601)。
答案:task处理一行记录的时间限制默认是600s。控制超时的属性是:mapred.task.timeout,默认600000ms,即600s。可以设置成更大的值。解决方法:conf.set("mapred.task.timeout","秒数"),如果是0则为无穷大;或者在mapred.xml中增加
<property><name>mapred.task.timeout</name><value>秒数</value></property>
(3)如何控制reduce任务的启动时间?
答案:在mapred-site.xml中配置参数mapred.reduce.slowstart.complete.maps,若设置为1则reduce任务会等待所有map完成后再启动,默认值是0.0