【发布时间】:2017-08-13 10:52:14
【问题描述】:
我在 YARN 中使用容量调度程序,我发现用户有可能通过使用属性“yarn minimum-user-limit-percent”来获得队列的最小百分比。我将此属性设置为 20,我希望资源将平均分配给最多 5 个用户,根据此:
但当用户启动运行应用程序时,情况并非如此。例如,如果我在队列空闲时运行应用程序,YARN 会为该应用程序分配所有请求的资源。当另一个用户之后运行相同的应用程序时,YARN 分配的资源与队列中剩余的资源一样多,并且队列被填满。此时,我认为使用该属性,第二个用户将获得 50% 的队列,而第一个用户将拥有更少的资源。
如果第三个用户进来,我希望他/她获得 33% 的队列,但 YARN 甚至没有安排应用程序,因为没有可用资源了。
我错过了什么吗?我认为这个参数会提出独立于可用资源的请求,直到达到每个用户的最小百分比。
这是我的 yarn-site.xml 和 capacity-scheduler.xml:
-
yarn-site.xml
<configuration> <property> <name>yarn.acl.enable</name> <value>true</value> </property> <property> <name>yarn.admin.acl</name> <value>*</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>hadoopLogin:8032</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>hadoopLogin:8033</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>hadoopLogin:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>hadoopLogin:8031</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>hadoopLogin:8088</value> </property> <property> <name>yarn.resourcemanager.webapp.https.address</name> <value>hadoopLogin:8090</value> </property> <property> <name>yarn.resourcemanager.client.thread-count</name> <value>50</value> </property> <property> <name>yarn.resourcemanager.scheduler.client.thread-count</name> <value>50</value> </property> <property> <name>yarn.resourcemanager.admin.client.thread-count</name> <value>1</value> </property> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>1024</value> </property> <property> <name>yarn.scheduler.increment-allocation-mb</name> <value>512</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>14336</value> </property> <property> <name>yarn.scheduler.minimum-allocation-vcores</name> <value>1</value> </property> <property> <name>yarn.scheduler.increment-allocation-vcores</name> <value>1</value> </property> <property> <name>yarn.scheduler.maximum-allocation-vcores</name> <value>32</value> </property> <property> <name>yarn.resourcemanager.amliveliness-monitor.interval-ms</name> <value>1000</value> </property> <property> <name>yarn.am.liveness-monitor.expiry-interval-ms</name> <value>600000</value> </property> <property> <name>yarn.resourcemanager.am.max-attempts</name> <value>2</value> </property> <property> <name>yarn.resourcemanager.container.liveness-monitor.interval-ms</name> <value>600000</value> </property> <property> <name>yarn.resourcemanager.nm.liveness-monitor.interval-ms</name> <value>1000</value> </property> <property> <name>yarn.nm.liveness-monitor.expiry-interval-ms</name> <value>600000</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.client.thread-count</name> <value>50</value> </property> <property> <name>yarn.resourcemanager.scheduler.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>yarn.scheduler.fair.user-as-default-queue 真的 yarn.scheduler.fair.preemption 错误的 yarn.scheduler.fair.sizebasedweight 错误的 yarn.scheduler.fair.assignmultiple 错误的 yarn.resourcemanager.max-completed-applications 10000 yarn.nodemanager.aux-services spark_shuffle yarn.nodemanager.aux-services.spark_shuffle.class org.apache.spark.network.yarn.YarnShuffleService
-
容量调度程序.xml
yarn.scheduler.capacity.root.queues 批处理,笔记本 控制台和批处理作业(batch)和笔记本作业(notebook)队列的定义
yarn.scheduler.capacity.root.batch.capacity 50 root.batch 队列的容量百分比
yarn.scheduler.capacity.root.notebook.capacity 50 root.notebook 队列的容量百分比
yarn.scheduler.capacity.root.batch.maximum-capacity 55 root.batch 队列的最大容量百分比
yarn.scheduler.capacity.root.notebook.maximum-capacity 55 root.notebook 队列的最大容量百分比
yarn.scheduler.capacity.root.batch.state 跑步 root.batch 提示的当前状态
yarn.scheduler.capacity.root.notebook.state 跑步 root.notebook 提示的当前状态
yarn.scheduler.capacity.root.acl_submit_applications hadoop,yarn,mapred,hdfs,spark 谁可以向根队列提交作业的 ACL。
yarn.scheduler.capacity.root.batch.acl_submit_applications scienceUser1 root,gaia,ub,ucm,uac,udc,esac,upo,une,inaf 谁可以将作业提交到 root.batch 队列的 ACL。
yarn.scheduler.capacity.root.notebook.acl_submit_applications * 根、盖亚、ub、ucm、uac、udc、esac、upo、une、inaf 谁可以将作业提交到 root.notebook 队列的 ACL。
yarn.scheduler.capacity.root.batch.acl_administer_queue 盖亚 谁可以将作业管理到 root.batch 队列的 ACL。
yarn.scheduler.capacity.root.notebook.acl_administer_queue 盖亚 谁可以将作业管理到 root.notebook 队列的 ACL。
yarn.scheduler.capacity.root.acl_administer_queue 盖亚 谁可以管理根队列上的作业的 ACL。
yarn.scheduler.capacity.root.acl_administer_queue 盖亚 谁可以管理根队列上的作业的 ACL。
yarn.scheduler.capacity.root.acl_administer_queue 盖亚 谁可以管理根队列上的作业的 ACL。
yarn.scheduler.capacity.root.batch.acl_administer_queue 盖亚 谁可以管理批处理队列上的作业的 ACL。
yarn.scheduler.capacity.root.notebook.acl_administer_queue 盖亚 谁可以管理笔记本队列上的作业的 ACL。
yarn.scheduler.capacity.resource-calculator org.apache.hadoop.yarn.util.resource.DominantResourceCalculator
yarn.scheduler.capacity.root.notebook.minimum-user-limit-percent 33 用户从队列中获得的资源的最小百分比。
【问题讨论】:
-
请详细支持 Yarn 配置。 yarn-site.xml 和 capacity-schedule.xml
标签: hadoop apache-spark hadoop-yarn