gpt4 book ai didi

amazon-ec2 - Apache Spark DAGScheduler 缺少舞台的 parent

转载 作者:行者123 更新时间:2023-12-03 17:26:20 25 4
gpt4 key购买 nike

在 Apache Spark 上运行我的迭代程序时,我偶尔会收到以下消息:

INFO scheduler.DAGScheduler: Missing parents for Stage 4443: List(Stage 4441, Stage 4442)

我认为这意味着它需要计算父项 RDD - 但我不是 100% 确定。我不只是得到其中一个,我一次得到 100 个,如果不是数千个的话——它完全减慢了我的程序,另一个迭代在 10-15 分钟内无法完成(它们通常需要 4-10 秒) .

cacheRDD在每次迭代中,使用 StorageLevel.MEMORY_AND_DISK_SER .下一次迭代使用这个 RDD . RDD的血统因此变得非常大,因此需要缓存。但是,如果我正在缓存(并溢出到磁盘)如何丢失父级?

最佳答案

我引用 Cloudera 的 Imran Rashid 的话:

如果阶段是 shuffle map 阶段,会被多次读取,则被跳过是正常的。例如,这是我之前编写的一个小示例程序来演示这一点:“d3”不需要重新洗牌,因为每次使用相同的分区器读取它。所以以这种方式跳过阶段是一件好事:

val partitioner = new org.apache.spark.HashPartitioner(10)
val d3 = sc.parallelize(1 to 100).map { x => (x % 10) -> x}.partitionBy(partitioner)
(0 until 5).foreach { idx =>
val otherData = sc.parallelize(1 to (idx * 100)).map{ x => (x % 10) -> x}.partitionBy(partitioner)
println(idx + " ---> " + otherData.join(d3).count())
}

如果您运行它,如果您查看 UI,您会看到除第一个作业之外的所有作业都有一个被跳过的阶段。您还将在日志中看到这一点:

15/06/08 10:52:37 INFO DAGScheduler: 最后阶段的 parent : List(Stage 12, Stage 13)

15/06/08 10:52:37 INFO DAGScheduler:失踪 parent :列表(第 13 阶段)

诚然,这不是很清楚,但这有点向您表明,DAGScheduler 首先创建了第 12 阶段作为必要步骤,然后后来改变主意,意识到它需要的第 12 阶段所需的一切都已经存在,所以什么都没有去做。

有关电子邮件来源,请参阅以下内容:
http://apache-spark-developers-list.1001551.n3.nabble.com/

关于amazon-ec2 - Apache Spark DAGScheduler 缺少舞台的 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29808309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com