项目中提交任务至Hadoop中,在Reduce阶段以及Applicationmaster阶段均有提示:
java.lang.OutOfMemoryError: GC overhead limit exceeded
解决办法
增加Hadoop集群资源分配,调整reduce以及Applicationmaster的内存。
reduce总数的调整取决于数据大小和可用资源。如果数据集很大,那么可能需要增加reduce总数以加快作业的处理速度。如果数据集较小,则可以减少reduce总数以节省资源。
reduce内存大小分配计算公式(仅为最低内存):
最少分配reduce内存 = 文件大小 / reduce总数 * 3
reduce.memory = output_size / num_reduces * 3
appmaster内存 = map + reduce任务总内存
参考文档:
https://www.cnblogs.com/liuming1992/p/5040169.html
https://blog.csdn.net/weixin_38822045/article/details/88894415