我试着在大约20GB的数据上运行mapreduce作业,并且在减少混洗阶段出现错误。它说因为内存堆空间。然后,我读了很多源代码,我必须减少mapred-site.xml上mapreduce.reduce.shuffle.input.buffer.percent属性的默认值0,7。所以,我把它降低到0.2。如何为hadoop mapreduce配置java内存堆空间?
我想问一下,该属性是否会影响我的mapreduce作业的时间性能。那么,我该如何正确配置才能使我的mapreduce作业永远不会出错?
非常感谢您的回答,我想再问一次,所以当我们在内存配置上出错时,hadoop mapreduce可以让任务失败。那么,我们可以说,这个问题取决于记录的数量,那么,hadoop如何处理这个问题或将失败风险降到最低? Thanks2 –
理想的洗牌不应该有这个问题。这是什么大数据,事情不会适合内存有一个错误https://issues.apache.org/jira/browse/MAPREDUCE-1182。你在旧版本?如果减少任务的内存不足,那么它是一个程序员的错误(减速器数量太低或自定义分区不好) – bl3e
通过我使用hadoop 2.6.0的方式,我设置reduce task的数量与slave的数量相同节点,你觉得怎么样? –