有了火花,我看不出有什么方法可以防止并发作业被调度。我的体系结构设置用于进行纯粹的批处理。
我需要这个原因如下:
- 资源限制
- spark的UserCache增长非常快。运行多个作业会导致缓存空间爆炸
理想情况下,我很想看看是否有一个配置可以确保在任何时候都只能在Yarn上运行一个作业。
您可以运行create队列,该队列只能承载一个应用程序主机,并在该队列上运行所有Spark作业。因此,如果一个Spark作业正在运行,那么另一个作业将被接受,但在运行的执行完成之前,它们不会被调度和运行。。。
最终在yarn文档中找到了解决方案:yarn.scheduler.caccepty.max-applications必须设置为1,而不是10000。