Hadoop远程调试

由于mapreduce为child进程,所以不能直接通过bin/hadoop文件中开启远程调试端口,具体操作如下:

1、 选定一台调试机器,修改mapred-site.xml文件,添加如下配置:

  1. <property>  
  2.   <name>mapred.child.java.opts</name>  
  3.   <value>-agentlib:jdwp=transport=dt_socket,address=8883,server=y,suspend=y</value>  
  4. </property>  

2、关闭所有的tasktracker,只保留上面配置的一台需要调试的tasktracker

3、启动Mapreduce job

4、mapreduce任务会在map阶段时进行等待(终端的显示是一直停留在0%),这时就可以利用eclipse或idea的remote debug进行远程调试,连接上后,map任务就往下执行,也就可以调试了。

      map任务完成后,到reduce阶段时又会进入等待,还需要进行一次remote debug.

猜你喜欢

转载自wangzejie.iteye.com/blog/2035514