Amazon ec2 “EC2上的Apache Spark”;“杀死”;

Amazon ec2 “EC2上的Apache Spark”;“杀死”;,amazon-ec2,apache-spark,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.compu

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

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
“死亡”是什么意思?为什么会发生?没有其他错误。

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


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

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

val conf = new SparkConf().setAppName("YourProgramName").set("yarn.nodemanager.vmem-check-enabled","false")
val sc = new SparkContext(conf)
可能是虚拟机问题

  • 确保您有交换分区
  • 确保
    vm.swappiness
    不为零

  • 该进程已运行多个小时。然而,现在,它可能在20秒后停止。它说每个节点大约有255Mb的可用内存。如果我启动了一个新集群,那么它会再次正常工作。