我的集群:1个主服务器,11个从服务器,每个节点有6 GB内存.
我的设置:
spark.executor.memory=4g, Dspark.akka.frameSize=512
Run Code Online (Sandbox Code Playgroud)
这是问题所在:
首先,我从HDFS到RDD读取了一些数据(2.19 GB):
val imageBundleRDD = sc.newAPIHadoopFile(...)
Run Code Online (Sandbox Code Playgroud)
其次,在这个RDD上做点什么:
val res = imageBundleRDD.map(data => {
val desPoints = threeDReconstruction(data._2, bg)
(data._1, desPoints)
})
Run Code Online (Sandbox Code Playgroud)
最后,输出到HDFS:
res.saveAsNewAPIHadoopFile(...)
Run Code Online (Sandbox Code Playgroud)
当我运行我的程序时,它显示:
.....
14/01/15 21:42:27 INFO cluster.ClusterTaskSetManager: Starting task 1.0:24 as TID 33 on executor 9: Salve7.Hadoop (NODE_LOCAL)
14/01/15 21:42:27 INFO cluster.ClusterTaskSetManager: Serialized task 1.0:24 as 30618515 bytes in 210 ms
14/01/15 21:42:27 INFO cluster.ClusterTaskSetManager: Starting task 1.0:36 as TID 34 on executor 2: Salve11.Hadoop (NODE_LOCAL)
14/01/15 21:42:28 INFO …Run Code Online (Sandbox Code Playgroud) 我知道 Stackoverflow 上还有其他 非常 类似的问题,但这些问题要么没有得到解答,要么没有帮助我。与这些问题相反,我在这个问题中加入了更多的堆栈跟踪和日志文件信息。我希望这会有所帮助,尽管它使问题变得有点长和丑陋。对不起。
我正在 Amazon EC2 上使用安装了 DSE (DataStax Enterprise) 版本 4.6 的实例运行 9 节点集群m3.xlarge。每个工作负载(Cassandra、搜索和分析)使用 3 个节点。DSE 4.6 捆绑 Spark 1.1 和 Cassandra 2.0。
即使我没有运行任何查询,应用程序(Spark/Shark-Shell)也会在约 3 分钟后被删除。对小型数据集的查询只要在大约 3 分钟内完成即可成功运行。
我想分析更大的数据集。因此,我需要应用程序(外壳)在大约 3 分钟后不会被删除。
在 Spark 或 Shark shell 上,空闲约 3 分钟后或执行(长时间运行)查询时,Spark 最终将中止并给出以下堆栈跟踪:
15/08/25 14:58:09 ERROR cluster.SparkDeploySchedulerBackend: Application has been killed. Reason: Master removed our application: FAILED
org.apache.spark.SparkException: Job aborted due to stage failure: Master removed our application: FAILED
at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1185)
at …Run Code Online (Sandbox Code Playgroud)