lenmom

博客园 首页 新随笔 联系 订阅 管理

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

  <property>
    <name>mapred.child.java.opts</name>
    <value>-agentlib:jdwp=transport=dt_socket,address=12000,server=y,suspend=y</value>
  </property>
  <property>
    <name>mapred.tasktracker.map.tasks.maximum</name>
    <value>1</value>
    <description>tasktracker的map任务上限</description>
  </property>
  <property>
    <name>mapred.tasktracker.reduce.tasks.maximum</name>
    <value>1</value>
    <description>tasktracker的reduce任务上限</description>
  </property>
  <property>
    <name>mapred.task.timeout</name>
    <value>100000000</value>
  </property>

 

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

or 在一个TaskTracker上,只能启动一个Map Task或一个Reduce Task,否则启动时会有端口冲突。因此要修改所有TaskTracker上的conf/hadoop-site.xml中的配置项:

<property>
    <name>mapred.tasktracker.map.tasks.maximum</name>
    <value>1</value>
</property>
<property>
    <name>mapred.tasktracker.reduce.tasks.maximum</name>
    <value>1</value>
</property>

 

3. 启动Mapreduce job

4.远程调试

a) 右键hadoop src项目,右键“Debug As”,

b) 选择“Debug Configurations”,

c) 选择“Remote Java Application”,

d) 添加一个新的测试,

e) 输入远程host ip和监听端口,上例为12000,然后点击“Debug”按钮。

此时应该连接到远程tasktracker child进程,并进入断点位置,可以单步调试了。

posted on 2019-08-04 15:10  老董  阅读(1042)  评论(0)    收藏  举报