【发布时间】:2020-06-29 13:16:07
【问题描述】:
我的用例:
- 我们有一个长期运行的 Spark 作业。在这里调用后,LRJ。该作业每周运行一次。
- 我们有多个可以随时运行的小型作业。这些 作业的优先级高于长时间运行的作业。
为了解决这个问题,我们创建了如下的 YARN 队列:
为资源管理创建了 YARN 队列。为长时间运行的作业配置了 Q1 队列,为小型运行的作业配置了 Q2 队列。
Config:
Q1 : capacity = 50% and it can go upto 100%
capacity on CORE nodes = 50% and maximum 100%
Q2 : capacity = 50% and it can go upto 100%
capacity on CORE nodes = 50% and maximum 100%
我们面临的问题:
当 LRJ 正在进行时,它会获取所有资源。当 LRJ 获得所有资源时,多个小型正在运行的作业等待。一旦集群扩大规模并且有新资源可用,小型正在运行的作业就会获得资源。但是,由于集群需要时间来扩展活动,这会在为这些作业分配资源时造成显着延迟。
更新 1:
我们已经尝试按照YARN docs 使用maximum-capacity 配置,但它无法正常工作,因为我在我的另一个问题here 中发布了
【问题讨论】:
标签: apache-spark hadoop hadoop-yarn amazon-emr long-running-processes