EC2上的Apache Spark“被杀”

时间:2015-04-20 19:23:22

标签: amazon-ec2 apache-spark

我在不同群集上多次运行的程序突然停止。日志:

15/04/20 19:19:59 INFO scheduler.TaskSetManager: Finished task 12.0 in stage 15.0 (TID 374) in 61 ms on ip-XXX.compute.internal (16/24)
15/04/20 19:19:59 INFO storage.BlockManagerInfo: Added rdd_44_14 in memory on ip-XXX.compute.internal:37999 (size: 16.0 B, free: 260.6 MB)
Killed

" Killed"意思是什么,为什么会发生?没有其他错误。

3 个答案:

答案 0 :(得分:1)

“Killed”通常意味着操作系统通过发送SIGKILL信号终止了该过程。这是一个不可阻塞的信号,可立即终止进程。它经常被用作OOM(内存不足)进程杀手 - 如果操作系统决定内存资源变得非常低,它可以选择一个进程来杀死以试图释放一些内存。

如果没有更多信息,就无法判断您的进程是否因内存问题或其他原因而被杀死。您可能提供的有助于诊断正在发生的事情的信息包括:进程在被杀之前运行了多长时间?你能从流程中启用并提供更详细的调试输出吗?与任何特定的沟通或处理活动模式相关的流程终止?

答案 1 :(得分:0)

尝试在程序的Spark配置中将yarn.nodemanager.vmem-check-enabled设置为false,如下所示:

val conf = new SparkConf().setAppName("YourProgramName").set("yarn.nodemanager.vmem-check-enabled","false")
val sc = new SparkContext(conf)

http://apache-spark-user-list.1001560.n3.nabble.com/How-to-avoid-being-killed-by-YARN-node-manager-td22199.html

答案 2 :(得分:0)

也许是vm问题

  1. 确保您有交换分区。
  2. 确保vm.swappiness不为零。