MapReduce编程System.out.println输出在哪里可找到?
转载请注明出处:
【http://datasearch.ruc.edu.cn/~boliangfeng/blog】,谢谢。
刚进行MapReduce编程时,很多人都会问这样的问题Map Reduce函数中的System.out.println打印输出为什么在终端屏幕看不到?
事实上语句是运行的,只不过Job最终被NN提交给各DN执行,所以在你的终端中看不到map reduce输出,输出被写入到了日志文件。
System.out.println输出到了stdout和stderr这两个文件,位于logs/userlogs/attempt_xxx目录下,相信这对于你的程序调试有很大的帮助。
分布式框架编程,查看log是必不可少的工作。
其实这就牵涉到程序的调试了,这里提出重要的一点,MapReduce提供了计数器的功能,通过计数器可以更方便的统计信息,比如Map output records, faild map tasks, reduce skipped groups等等,相信这要比从日志中获得想要的信息更加方便,用户可自定义计数器,当然有时候会有局限性,看情况选择。