我正在使用Spark over Yarn。但有几次,对于不同的应用程序,我注意到Yarn因内存超出限制而杀死容器,并且只有当Spark执行器在第二次或第三次迭代中执行任务时才会发生。我的意思是,让我们说执行者必须连续执行4个任务。第一次它很好,第二次有时也,但第三次它肯定失败,因为内存超过限制。
我怀疑容器中的内存不断累积,也就是说,前一个任务使用的内存会被遗忘,因为Yarn会杀死容器。使用地图时我特别遇到这个问题。但是现在我正在使用Arrays,并且也遇到了同样的问题。有没有人注意到这种奇怪的机制?如果是,有哪些解决方案可以解决它?