码迷,mamicode.com
首页 > 其他好文 > 详细

[MapReduce]MapReduce调试:在TaskTracker节点上查看打印信息

时间:2015-05-14 20:34:18      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

业务背景

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)) {
        // ------ debug info -----------------------
        System.out.println("DebugInfo : " 
                + e.getPageTypeId() + ", "
                + e.getTpa() + ", "
                + e.getAlgorithmId());
        // ------ debug info -----------------------

        return e.getAlgorithmId();
    }
}
...

执行上面的Job,等待执行完毕以后,进入JobTracker页面
技术分享
因为上面的程序代码是在Reduce端进行的,所以点击“Reduce”,进入后可以看到Reduce端的所有TaskTracker节点
技术分享
选择一个TaskTracker节点进去
技术分享
然后点击logs,查看TaskTracker节点的日志信息
技术分享
技术分享

结论

完全并行模式的MR模型,可以借助JobTracker页面,结合

System.out.println("xxx");

已经运行完成的Job的 TaskTracker节点上查看打印信息。

[MapReduce]MapReduce调试:在TaskTracker节点上查看打印信息

标签:

原文地址:http://blog.csdn.net/yeweiouyang/article/details/45724481

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!