mapreduce任务执行的单步跟踪

本文介绍了一种使用Hadoop IsolationRunner工具和Eclipse远程调试功能进行MapReduce程序调试的方法。通过保留失败任务的临时数据、开启远程调试端口等步骤,可以实现集群环境下MapReduce任务的单步跟踪。

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

本文仅作为笔记,本人并未实践,若有实践者,请评论告知结果,谢谢。

mapreduce程序调试除了在代码中添加日志来判断分析问题外,hadoop还提供了IsolationRunner工具,但是需要eclipse的远程调试功能。

集群下实现mapreduce任务的单步跟踪:
1、保存失败任务的临时数据和目录。
设置keep.failed.task.files为true
设置此参数后hadoop会保留此任务的临时数据和目录。如:运行时的job.xml配置文件,map任务的数据数据split.dat,reduce任务需要的输入数据file.out。
*调试完成后应设置回默认false,以避免产生过多的垃圾文件占满磁盘。
2、启动hadoop节点的远程调试端口。
hadoop运行环境中设置环境变量以连接IDE。
    export  HADOOP_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8888"
hadoop产生的debug信息通过端口8888对外发送。
3、重新运行待调试的任务。
通过mapreduce web界面找到出错任务的所在节点,并登陆该节点。
在节点上找到出错的任务运行时的目录,此目录参数由mapred.local.dir决定,为mapred.local.dir/taskTracker/jobcache/job-ID/task-attemp-ID。
job-ID,task-attemp-ID信息可以在web界面找到。
进入此工作目录,执行:
    hadoop  org.apache.hadoop.mapred.IsolationRunner    ../job.xml
4、启动调试代码并设置断点。
  在eclipse启动一个远程调试进程,连接到运行任务节点的8888端口,然后就可以跟单机调试一样设置断点和单步调试mapreduce程序了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值