运行大作业(文件数目多)时需要注意的参数:
Hadoop2 采用Yarn管理作业,与Hadoop1不同的是,Hadoop2会控制每个任务的内存数量。因此,当作业执行失败时,可根据报错信息调整以下参数
参数一: AM内存
- MR_ApplicationMaster占用的内存量。如果一个作业的map过多,可能导致am内存溢出,进而作业失败。
- conf.set("yarn.app.mapreduce.am.resource.mb", "3000"); 单位MB. 超过5万个map任务时,建议设为3000以上
- conf.set("yarn.app.mapreduce.am.command-opts", "-Djava.net.preferIPv4Stack=true -Xmx2125955249"); 单位字节,一般设为上一个值的70%
- 还有一个参数mapreduce.job.split.metainfo.maxsize,这是是文件分片的存储空间,建议设为-1,不对其进行限制
- Map数太多时,还有一种办法可以有效减少Map数,从而大大降低资源消耗,缩短执行时间,见本文末尾