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启动参数。 |
-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 |