如何对Hadoop作业的某个task进行debug单步跟踪(2)


以下是图解示意,这里采用最简单的wordcount来进行示例。在wordcount的输入文件中,加入一行数据,如“guaishushu”,然后修改wordcount的Mapper实现,如下:

如何对Hadoop作业的某个task进行debug单步跟踪


这样修改以后,由于数据中有 “guaishushu”的字符串,并且该行一定会被落到某个map的输入中去,然后代码中当读到”guaishushu”的时候会抛出 IOException异常,所以该job在运行过程中就肯定会有一个task失败。然后,在提交作业时,将 keep.failed.task.files设置为true,并按如下程序提交,job就开始运行:

在jobtracker监控web页面上找到 task失败的机器,并确保keep.failed.task.files为true

如何对Hadoop作业的某个task进行debug单步跟踪


上到该tasktracker,并找到该 task运行环境

如何对Hadoop作业的某个task进行debug单步跟踪

进到该task运行环境的work目录(如果没有,可以自己创建
export jvm远程调试环境变量
运行IsolationRunner
在自己的开发机IDE环境中launch一个远程调试进程

如何对Hadoop作业的某个task进行debug单步跟踪

单步跟踪示意

如何对Hadoop作业的某个task进行debug单步跟踪

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/pxpsz.html