更新时间:2024-08-16 GMT+08:00

MapReduce大任务的AM调优

操作场景

当运行一个大任务(map总数达到了10万的规模),但是一直没有运行成功。经过查询发现是ApplicationMaster(以下简称AM)反应缓慢,最终超时失败。

此任务的问题是,task数量变多时,AM管理的对象也线性增长,因此就需要更多的内存来管理。AM默认分配的内存堆大小是1GB。

操作步骤

通过调大如下的参数来进行AM调优。

参数入口:

在Yarn客户端的“mapred-site.xml”配置文件中调整如下参数。“mapred-site.xml”配置文件在客户端安装路径的conf目录下,例如“/opt/client/Yarn/config”。

参数

描述

默认值

yarn.app.mapreduce.am.resource.mb

该参数值必须大于下面参数的堆大小。单位:MB

1536

yarn.app.mapreduce.am.command-opts

传递到MapReduce ApplicationMaster的JVM启动参数。

  • MRS 3.x之前版本:-Xmx1024m -XX:CMSFullGCsBeforeCompaction=1 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -verbose:gc
  • MRS 3.x及之后版本:-Xmx1024m -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -verbose:gc -Djava.security.krb5.conf=${KRB5_CONFIG} -Dhadoop.home.dir=${BIGDATA_HOME}/FusionInsight_HD_xxx/install/FusionInsight-Hadoop-xxx/hadoop