mapreduce任务执行的单步跟踪

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

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程序了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值