个人博客地址:MapReduce远程调试 | 一张假钞的真实世界
MR的远程调试分为两个方面:
- MapReduce Task远程调试
- AM(Application Master)远程调试
MapReduce Task远程调试
Map Task远程调试
修改mapred-site.xml
中的配置项:
- mapreduce.map.java.opts:Map Task JVM参数设置。此处设置为:-Xdebug -Xrunjdwp:transport=dt_socket,address=9091,server=y,suspend=y。
- mapreduce.map.maxattempts:Map Task失败重试的最大次数。此处设置为1。
- mapreduce.task.timeout:一个Task既没有读写数据也没有状态变化可持续的毫秒数。默认为600000毫秒,设置为0禁用超时。远程调试时通常需要持续的时间比较久,所以此处设置为0。
Reduce Task远程调试
修改mapred-site.xml中的配置项:
- mapreduce.reduce.java.opts:Map Task JVM参数设置。此处设置为:-Xdebug -Xrunjdwp:transport=dt_socket,address=9091,server=y,suspend=y。
- mapreduce.reduce.maxattempts:Map Task失败重试的最大次数。此处设置为1。
- mapreduce.task.timeout:一个Task既没有读写数据也没有状态变化可持续的毫秒数。默认为600000毫秒,设置为0禁用超时。远程调试时通常需要持续的时间比较久,所以此处设置为0。
virtual memory错误
分为两种:
- AM管理进程virtual memory beyond错误
- Task Container virtual memory beyond错误
AM
错误信息如下:
21/08/09 16:38:37 INFO mapreduce.Job: Job job_1593052953461_29983110 failed with state FAILED due to: Application application_1593052953461_29983110 failed 2 times due to AM Container for appattempt_1593052953461_29983110_000002 exited with exitCode: -103
For more detailed output, check application tracking page:http://ycluster-resourcemanager1:50030/cluster/app/application_1593052953461_29983110Then, click on links to