MapTask和ReduceTask都是TaskTracker的Child进程,MapTask, ReduceTask和 TaskTracker是彼此完全独立的JVM。
在MapReduce任务运行过程中他们之间由两个RPC协议进行通信,分别是TaskUmbilicalProtocol(Map/Reduce Task与TaskTracker之间通信)与InterTrackerProtocol(TaskTracker与JobTracker之间通信)。
首先在启动MapReduce服务的时候,TaskTracker与JobTracker两个JVM就已经启动了。运行一个Job的时候,TaskTracker会启动相应的JVM来执行Map/Reduce Task。
一. 关于调试 Map/Reduce Task:
有三个与此相关的属性,分别是:(1) mapred.child.java.opts (2) mapred.map.child.java.opts (3) mapred.reduce.child.java.opts 在conf/mapred-site.xml中添加相应的属性就可以进行对Map/Reduce Task的远程调试。
Step 1. 首先作为远程调试的第一步就是将hadoop的代码导入eclipse。
Step 2. 配置Hadoop远程调试
2.1. 如果希望远程调试MapTask: