业务背景
MapReduce编程模型的线上调试并不方便,它不像本地Java程序那样可以很方便地及时看到输出结果,本文将提供一种比较简捷的方式对MapReduce Job进行调试。
分析
完全并行模式下的MapReduce Job,使用
System.out.println("xxx");
并不会打印到控制台上,因为完全并行模式下的MR Job是分布在集群上各个TaskTracker节点上运行的,因此,使用System.out.println的结果,是将打印信息打印到实际运行的Slave节点上的
如何在TaskTracker节点上查看打印信息
如下一段代码来自MapReduce Job:
...
for (PmsPageTpaModel e : pmsPageTpaList) {
if (e.getPageTypeId() == referPageTypeId
&& e.getTpa().equals(tpa)) {
//