队列管理
Hadoop配置队列
- 用户可于 控制台-服务管理 进行队列配置,具体可参考基本操作。
由于Fair Scheduler比Capacity Scheduler 支持的功能丰富,这里只介绍前者。
- 修改/home/hadoop/conf/yarn-site.xml
增加配置:
xml
- 配置队列配额
cat fair-scheduler.xml
xml
- 队列属性说明:
1.minResources :最少资源保证量,设置格式为“X mb, Y vcores”,当一个队列的最少资源保证量未满足时,它将优先于其他同级队列获得资源,对于不同的调度策略(后面会详细介绍),最少资源保证量的含义不同,对于fair策略,则只考虑内存资源,即如果一个队列使用的内存资源超过了它的最少资源量,则认为它已得到了满足;对于drf策略,则考虑主资源使用的资源量,即如果一个队列的主资源量超过它的最少资源量,则认为它已得到了满足。
2.maxResources:最多可以使用的资源量,fair scheduler会保证每个队列使用的资源量不会超过该队列的最多可使用资源量。
3.maxRunningApps:最多同时运行的应用程序数目。通过限制该数目,可防止超量Map Task同时运行时产生的中间输出结果撑爆磁盘。
4.minSharePreemptionTimeout:最小共享量抢占时间。如果一个资源池在该时间内使用的资源量一直低于最小资源量,则开始抢占资源。
5.schedulingMode/schedulingPolicy:队列采用的调度模式,可以是fifo、fair或者drf。
6.aclSubmitApps:可向队列中提交应用程序的Linux用户或用户组列表,默认情况下为“*”,表示任何用户均可以向该队列提交应用程序。需要注意的是,该属性具有继承性,即子队列的列表会继承父队列的列表。配置该属性时,用户之间或用户组之间用“,”分割,用户和用户组之间用空格分割,比如“user1, user2 group1,group2”。
7.aclAdministerApps:该队列的管理员列表。一个队列的管理员可管理该队列中的资源和应用程序,比如可杀死任意应用程序。
8.weight主要用在资源共享之时,weight越大,拿到的资源越多。比如一个pool中有20GB内存用不了,这时候可以共享给其他pool,其他每个pool拿多少,就是由权重决定的。
9.maxAMShare: application masters使用的内存比例限制取值范围是[0.0f, 1.0f], 默认值是0.5f, -1.0f 表示不进行检查。
10.fairSharePreemptionTimeout:公平共享量抢占时间。如果一个资源池在该时间内使用资源量一直低于公平共享量的fairSharePreemptionThreshold * 公平共享量,则开始抢占资源。
11.fairSharePreemptionThreshold: 配合上面参数使用的。
- 也可通过以下参数设置上面部分属性的默认值
xml
defaultFairSharePreemptionTimeout
userMaxAppsDefault
defaultMinSharePreemptionTimeout
defaultFairSharePreemptionThreshold
queueMaxAppsDefault
queueMaxAMShareDefault
defaultQueueSchedulingPolicy
queuePlacementPolicy
- 用户属性:
maxRunningApps: 目前只能限制用户提交任务数量
- 应用队列配置
修改fair-scheduler.xml文件,后推送到master节点上。然后在master1上以hadoop用户执行
yarn rmadmin -refreshQueues
注解:这个命令只能增加fair-scheduler.xml中的配置,不能删除掉原有的配置队列,如果要删除原来的配置要重启ressourcemanager
更详细的内容请参考官网说明