远程Hadoop调试——mapreduce函数调试篇

本文详细介绍了在Hadoop MapReduce环境下进行调试的方法,包括配置mapred-site.xml文件以启用远程调试端口,以及如何在不开启所有tasktracker的情况下仅保留一台用于调试。文章还分享了一个实际操作中的小技巧,即在连接到tasktracker后可能会出现的连接错误异常,以及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一次记录了如何调试NN,JT,DT,JT,这次记录为调试mapreduce函数,和前几个应用不同,mapreduce为Child进程,不能直接通过bin/hadoop文件中开启远程调试端口,具体操作如下:

 

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

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

 

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

 

3. 启动Mapreduce job

 

3. 右键hadoop src项目,右键“Debug As”,选择“Debug Configurations”,选择“Remote Java Application”,添加一个新的测试,输入远程host ip和监听端口,上例为8883,然后点击“Debug”按钮。此时应该连接到远程tasktracker child进程,并进入断点位置,可以单步调试了。

 

我的YY:在调试过程发现开启所有tasktracker,此时连接到tasktracker一下然后就断开,所以需要关闭其他tasktracker,只保留一台。

    按照上面的配置,如果抛出一个连接错误异常,再连接一下就好了。

 

-- heipark

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值