以下是图解示意,这里采用最简单的wordcount来进行示例。在wordcount的输入文件中,加入一行数据,如“guaishushu”,然后修改wordcount的Mapper实现,如下:
这样修改以后,由于数据中有 “guaishushu”的字符串,并且该行一定会被落到某个map的输入中去,然后代码中当读到”guaishushu”的时候会抛出 IOException异常,所以该job在运行过程中就肯定会有一个task失败。然后,在提交作业时,将 keep.failed.task.files设置为true,并按如下程序提交,job就开始运行: 在jobtracker监控web页面上找到 task失败的机器,并确保keep.failed.task.files为true
上到该tasktracker,并找到该 task运行环境
export jvm远程调试环境变量
运行IsolationRunner
在自己的开发机IDE环境中launch一个远程调试进程