分享

hadoop如何debug

gwgyk 发表于 2014-11-18 11:38:24 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 8415
大家好,我想在hadoop中debug下面这部分代码,那我是该debug TaskTracker呢,还是debug Map Task呢?具体该怎么做呢?论坛里的帖子跟我的情况不是很一样,请大家多多指教啊

//Mapper.java
  public void run(Context context) throws IOException, InterruptedException {
    setup(context);
    try {
      while (context.nextKeyValue()) {
        map(context.getCurrentKey(), context.getCurrentValue(), context);
      }
    } finally {
      cleanup(context);
    }
  }



(没法以代码格式贴上去,多多包涵啊)

已有(2)人评论

跳转到指定楼层
gwgyk 发表于 2014-11-18 12:09:57
我试了下,debug Map Task好像不对,因为这样实际上是在调试自己写的Map函数,没有达到我想要的效果。那该怎么办呢?
回复

使用道具 举报

bioger_hit 发表于 2014-11-18 12:54:45
楼主可以参考下面办法,如果都不行的话,有两个原因:
1.需要查看自己问题出现在什么地方,多查资料
2.去官网看看,是否有新的收获





mapreduce调试:

调试的方法有多种,这里说一种最简单、原始的一种。
记得Javascript刚开始之初是不能调试的,于是我们就采用alert的方法,看看结果是不是我们想要的,这里我们调试mapreduce采用的是类似的方法。我们通过Counter countPrint1 = context.getCounter("Map中循环strScore", “输出信息”);来输出调试信息,getCounter可以把程序里面的变量输出到Java控制台,这样就达到了调试效果。
详细参考:
Hadoop中调试(mapreduce)map与redcue信息的输出办法

当然还有其他调试方法,可以参考下面
Win7 Eclipse调试Centos Hadoop2.2-Mapreduce出现问题解决方案
调试Hadoop源代码:eclipse调试及日志打印
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条