`
tangjunliang
  • 浏览: 109550 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Error: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError:

阅读更多
hadoop执行JOB在reduce阶段报了下面的错误:

Error: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in fetcher#4 
at org.apache.hadoop.mapreduce.task.reduce.Shuffle.run(Shuffle.java:121) 
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:380) 
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:165) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.security.auth.Subject.doAs(Subject.java:415) 
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491) 
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:160) 
Caused by: java.lang.OutOfMemoryError: Java heap space 
at org.apache.hadoop.io.BoundedByteArrayOutputStream.<init>(BoundedByteArrayOutputStream.java:56) 
at org.apache.hadoop.io.BoundedByteArrayOutputStream.<init>(BoundedByteArrayOutputStream.java:46) 
at org.apache.hadoop.mapreduce.task.reduce.InMemoryMapOutput.<init>(InMemoryMapOutput.java:63) 
at org.apache.hadoop.mapreduce.task.reduce.MergeManagerImpl.unconditionalReserve(MergeManagerImpl.java:297) 
at org.apache.hadoop.mapreduce.task.reduce.MergeManagerImpl.reserve(MergeManagerImpl.java:287) 
at org.apache.hadoop.mapreduce.task.reduce.Fetcher.copyMapOutput(Fetcher.java:411) 
at org.apache.hadoop.mapreduce.task.reduce.Fetcher.copyFromHost(Fetcher.java:341) 
at org.apache.hadoop.mapreduce.task.reduce.Fetcher.run(Fetcher.java:165)



解决方法:

修改mapred-site.xml配置中的mapreduce.reduce.shuffle.memory.limit.percent参数

<property>
   <name>mapreduce.reduce.shuffle.memory.limit.percent</name>
  <value>0.25</value>
  <description>Expert: Maximum percentage of the in-memory limit that a
  single shuffle can consume</description>
</property>


这个值默认是0.25,可以根据需要适当的减小这个值。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics