概要说明
集群内提交的一些Map/Reduced任务会放到yarn上面执行,但是默认情况下,可以使用的资源有限。当有许多任务提交的时候,大部分任务就会处于Accepted状态。当集群资源较为富足,此时可以考虑调整参数使得并发度提高。
详细说明
调整的参数主要是全局参数:
yarn.scheduler.capacity.maximum-am-resource-percent
(集群中用于运行应用程序ApplicationMaster的资源比例上限,该参数通常用于限制处于活动状态的应用程序数),以及队列级别的yarn.scheduler.capacity.root.maximum-am-resource-percent
和yarn.scheduler.capacity.xxx.maximum-am-resource-percent
.
默认情况下这些值都是0.1.
此时如果提交了过多的任务,那么在yarn的8088页面,具体的application信息页面就会看到如下信息:
此时需要等待启动AM Container,调整了这些参数后,AM master就会有更多资源去启动对应的AM Container,从而加快处理M/R任务的速度。
此时提交多个任务到yarn上情况如下:
内存和core的使用率都很低,并发只有一个任务处于running状态。
操作步骤
1、确认当前yarn配置的默认值:
去yarn的配置参数页面搜索maximum-am-resource-percent
:
2、更改该值为0.4:
3、添加默认队列default的自定义参数:
默认提交的任务是运行在root.default队列中的,所以需要添加一个yarn.scheduler.capacity.root.default.maximum-am-resource-percent
:
4、页面上配置服务,重启yarn:
5、提交任务验证:
此时可以看到四个任务都是出于running状态,并且内存和使用的核数都得到了显著的提升。