当我在 map 类中使用以下代码行时:
String fileName = ((FileSplit) context.getInputSplit()).getPath().getName();
System.out.println(fileName);
我得到一个空的输出文件。另外,控制台中的最后两行是:
14/05/06 12:52:53 INFO mapred.JobClient: Map output records=0
14/05/06 12:52:53 INFO mapred.JobClient: SPLIT_RAW_BYTES=2127
最佳答案
问题出在System.out.println()
,您不会在控制台中得到结果。您需要检查您的日志。
或更简单:使用记录器!
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private static final Log LOG = LogFactory.getLog(MyClass.class);
LOG.info(fileName);
您将在控制台中的作业执行过程中获得结果。
关于hadoop - 在hadoop中-带有fileplit的Map-Reduce错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23491700/