Hadoop Map Task获取StackOverflowError

时间:2013-01-02 08:17:58

标签: java hadoop stack-overflow

我在失败的地图任务的系统日志中看到此异常,特定作业中的所有地图任务都遇到此错误。

这里有任何关于原因的猜测,这是一个奇怪的堆栈痕迹到我的眼睛。

2012-12-29 10:37:37,975 FATAL org.apache.hadoop.mapred.Child (main): Error running child : java.lang.StackOverflowError
    at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:80)
    at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64)
    at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
    at org.apache.hadoop.mapreduce.lib.input.DelegatingMapper.setup(DelegatingMapper.java:46)
    at org.apache.hadoop.mapreduce.lib.input.DelegatingMapper.run(DelegatingMapper.java:54)
    at org.apache.hadoop.mapreduce.lib.input.DelegatingMapper.run(DelegatingMapper.java:55)
    at org.apache.hadoop.mapreduce.lib.input.DelegatingMapper.run(DelegatingMapper.java:55)
    at org.apache.hadoop.mapreduce.lib.input.DelegatingMapper.run(DelegatingMapper.java:55)
    at org.apache.hadoop.mapreduce.lib.input.DelegatingMapper.run(DelegatingMapper.java:55)
    at org.apache.hadoop.mapreduce.lib.input.DelegatingMapper.run(DelegatingMapper.java:55)
    <1014 duplicate lines cut>

1 个答案:

答案 0 :(得分:2)

查看DelegationMapper.java的来源我可以怀疑你以某种方式将DelegationMapper设置为你的实际Mapper类。结果 - 它无限地委托自己运行。