ycli12
                                            ycli12
                                        
                                    P61,页面中间那段:在性能上,相比groupByKey()、reduceByKey()可以在Shuffle之前使用func... 、应该改成逗号
P67图3.15中的文字跟其他图片的字体不一样
你好,P129页的5.2.3章节中,有一句话,“每轮迭代开始时,Spark首先将w广播到所有task中”,在5.2.2章节中给出的代码样例实际上没有广播,只是放到lambda闭包然后跟随Task序列化发送到Executor,每个Task都有一份
在后面还有一句话,“在框架执行时借走的空间不会归还给数据缓存空间,原因是难以代码实现。”,我看到了网上的一段Spark官方的会议[视频](https://www.youtube.com/watch?v=dPHrykZL8Cg&list=RDCMUCRzsq7k4-kT-h3TDUBQ82-w&index=3)的11:21处,演讲者说到还有一个原因是,框架执行内存spill到磁盘的内存一定会被重新加载回内存(在进行最后的聚合/排序的时候),而缓存不一定会被用到,因此框架执行空间不归还内存是因为框架执行内存用法在一般情况下更“划算”,书籍后面还可以补充多这一点的原因。
我最近看了源码,发现执行空间是任意向缓存空间借内存的,并不存在50%的限制,如果我理解错了,麻烦说下。 maybeGrowExecutionPool ``` /** * Grow the execution pool by evicting cached blocks, thereby shrinking the storage pool. * * When acquiring memory for a task, the execution pool may...
@JerryLead 谢谢徐老师的回复,我还有一点疑问,根据P103的想法2,ManyToManyDependency在这里会不会存在重复计算的问题呢?每次计算child RDD的每个分区的时候都需要重复计算全部的父RDD。
做一下总结,ManyToManyDependency跟ShuffleDependency不一样的地方: 1、ShuffleDependency在分区时候需要对partitionId进行排序或者Hash,而ManyToManyDependency不需要 2、ShuffleDependency是分发,只有一份,而ManyToManyDependency是复制多份