Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 apachespark任务失败_Amazon Ec2_Apache Spark - Fatal编程技术网

Amazon ec2 apachespark任务失败

Amazon ec2 apachespark任务失败,amazon-ec2,apache-spark,Amazon Ec2,Apache Spark,为什么Apache Spark任务失败?我认为,由于DAG,即使没有缓存任务也可以重新计算?事实上,我正在缓存,我要么得到一个filenotfoundexception,要么得到以下结果: Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 9238.0 failed 4 times, most recent failure: L

为什么Apache Spark任务失败?我认为,由于DAG,即使没有缓存任务也可以重新计算?事实上,我正在缓存,我要么得到一个
filenotfoundexception
,要么得到以下结果:

Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 9238.0 failed 4 times, most recent failure: Lost task 0.3 in stage 9238.0 (TID 17337, ip-XXX-XXX-XXX.compute.internal): java.io.IOException: org.apache.spark.SparkException: Failed to get broadcast_299_piece0 of broadcast_299
    org.apache.spark.util.Utils$.tryOrIOException(Utils.scala:930)
    org.apache.spark.broadcast.TorrentBroadcast.readObject(TorrentBroadcast.scala:155)
    sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:606)
    java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893)
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
    java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
    org.apache.spark.serializer.JavaDeserializationStream.readObject(JavaSerializer.scala:62)
    org.apache.spark.serializer.JavaSerializerInstance.deserialize(JavaSerializer.scala:87)
    org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:160)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:745)
这很奇怪,因为我在较小的实例上运行了相同的程序,并且没有得到
filenotfoundexception-这个设备上没有剩余空间,而是得到了上面的错误。当我说,将实例大小增加一倍时,它告诉我,在运行大约1小时后,设备上已经没有空间了——相同的程序,更大的内存,而且空间也用完了!提供了什么?

如本期中所述:

现在,在每台机器上,我们为其创建M*R临时文件 洗牌,其中M=地图任务数,R=减少任务数。 当有很多映射器和还原器时,这可能非常高 (例如,1k map*1k reduce=100万个文件用于一次洗牌)。这个 高数字可能会破坏文件系统并显著降低速度 系统关闭。我们应该把这个数字减少到O(R)而不是O(M*R)

因此,如果您确实看到您的磁盘正在耗尽索引节点,您可以尝试以下方法来解决此问题:

  • 减少分区(请参见合并为随机播放=false)
  • 由于文件系统的行为不同,您还可以尝试通过“”将分区数减少到O(R)
  • 有时,您可能会发现需要系统管理员增加FS支持的inode数量

  • 您正在尝试运行决策树分类算法?否。梯度下降,如果这有帮助的话。如果您尝试检查源代码,则有9个点存在spark问题
    filenotfoundexception
    ,而这里您有一个不同的问题……是的,这次任务失败了。我可能已经运行了3000次该程序,从昨天开始,我已经开始出现上述错误或
    filenotfoundexception-此设备上没有剩余空间了
    。您能用
    df
    命令的结果更新您的问题吗。我怀疑您的设备上没有足够的临时内存。谢谢
    conf.set(“spark.shuffle.consolidateFiles”、“true”)
    似乎没有帮助。我想我会把隔板砍掉;但我确实觉得这会影响性能(我读到每个核心使用3个分区以获得最佳性能),您需要在性能和可伸缩性之间找到自己的平衡。或者你可以选择第三种方法。