【问题标题】:Apache Spark EC2 job not running. No space left on deviceApache Spark EC2 作业未运行。设备上没有剩余空间
【发布时间】:2015-04-20 03:25:48
【问题描述】:

我已经在一个 20 节点的集群上多次运行我的程序。突然每次我运行程序时都会出现以下错误:

15/04/19 16:52:35 WARN scheduler.TaskSetManager: Lost task 35.0 in stage 9.0 (TID 384, ip-XXX.XXX.compute.internal): java.io.FileNotFoundException: /mnt/spark/spark-local-XXX-ebd3/18/shuffle_2_35_64 (No space left on device)
    java.io.FileOutputStream.open(Native Method)
    java.io.FileOutputStream.<init>(FileOutputStream.java:221)
    org.apache.spark.storage.DiskBlockObjectWriter.open(BlockObjectWriter.scala:123)
    org.apache.spark.storage.DiskBlockObjectWriter.write(BlockObjectWriter.scala:192)
    org.apache.spark.shuffle.hash.HashShuffleWriter$$anonfun$write$1.apply(HashShuffleWriter.scala:67)
    org.apache.spark.shuffle.hash.HashShuffleWriter$$anonfun$write$1.apply(HashShuffleWriter.scala:65)
    scala.collection.Iterator$class.foreach(Iterator.scala:727)
    scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
    org.apache.spark.shuffle.hash.HashShuffleWriter.write(HashShuffleWriter.scala:65)
    org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:68)
    org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41)
    org.apache.spark.scheduler.Task.run(Task.scala:54)
    org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:178)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:745)

检查用户界面,它说节点上绝对没有任何内容。我已经运行了该程序可能 15 次,但它只是突然开始了。为什么会突然发生这种情况?我该如何解决?

【问题讨论】:

    标签: amazon-ec2 apache-spark


    【解决方案1】:

    “设备上没有剩余空间”是一个非常明显的例外:该节点在写入 spark 本地文件的挂载上没有剩余空间:/mnt/spark/

    解决方案:转到节点(或多个节点)并清理它。 rm -rfFTW。

    如果作业在终止之前由于人工干预或故障而中断,它们通常会留下临时数据。

    【讨论】:

    • 写入了哪些本地文件?我添加了:`conf.set("spark.shuffle.consolidateFiles", "true")`,到目前为止一切正常。然而,有一次它发生了,我真的只是再次运行该程序,它运行良好。那么,导致空间不足的数据发生了什么?
    • 另外,我如何去节点?我正在使用 spark-ec2 脚本。
    • 您需要使用他们的 PEM 证书 ssh 进入节点 - 这与 Spark 无关。大量资源:docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 2023-03-06
    • 2012-12-29
    • 2012-01-14
    相关资源
    最近更新 更多