yarn:控制作业的并发性

oxosxuxt  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(365)

我一直试图通过控制任何给定时间的作业数(我只有mr作业,没有其他的yarn应用程序),利用yarn资源队列来控制争用。我的情况是-
我有一个服务,它接受用户的请求并运行一些报告(就像乔布斯先生一样)。这些工作有时会很费时,在高峰期,这些工作会争夺资源,而过多的分享意味着没有一份工作能取得像样的进展。我正在尝试最小化任何给定时间可以在队列上运行的报告数。
我可以通过将队列的最大运行应用程序数设置为所需的值来实现这一点。现在,我可以将mr应用程序/作业提交到集群,并且在任何给定的时间都只能运行(比如说“n”)个作业。现在,问题是,没有办法抢占同一队列中的任务(或者我不知道有一个)。我希望我能够将作业提交到此队列,这样当有一个作业时,它将占据整个队列,当有两个作业时,第一个作业的一些任务被终止,两个作业具有相同的资源,第三个作业将进一步划分资源,以此类推(基本上与fairsharescheduler使用抢占的方式相同,但是在一个队列而不是多个队列中)。
这可能吗?我现在只有一个用户(我的服务)提交作业。我可以将我的服务的用户传播到集群(我不喜欢这样,但是如果没有其他go的话可以这样做),以便基于用户创建子队列。但是我不知道如何获得我想要的行为,因为有很多用户,我不知道如何在不知道队列名称的情况下设置每个队列的限制(权重)(将在提交作业时创建)。
提前谢谢你的帮助。

arknldoa

arknldoa1#

我发现不可能抢占同一队列中的容器。我妥协了。

相关问题