论文"GraphX:分布式数据流框架中的图形处理“(Gonzalez等人)。2014年)我了解到GraphX修改了火花洗牌:
基于内存的Shuffle:Spark的默认洗牌实现将临时数据物化到磁盘。我们修改了混洗阶段以实现内存中的映射输出,并使用超时删除这个临时数据。
(这篇论文没有对这一点作进一步的解释。)
这种变化的目的似乎是在高度迭代的图形处理算法的背景下优化改组。
这种“基于内存的洗牌”究竟是如何工作的,它与火花核心的那一次有什么不同,利弊是什么:为什么它非常适合图形用例而不适合其他星火作业?
我无法直接从GraphX/Spark的来源了解全局,我也很难找到那里的信息。
除了一个理想的答案,评论与链接的来源也是欢迎的。
发布于 2019-11-28 18:22:52
I未能从GraphX/Spark源直接理解大局
因为它从来没有被纳入主流发行。
当第一个GraphX版本被开发出来时,Spark使用了基于Hash的洗牌,这是相当低效的。这是火花工作的主要瓶颈之一,并有重要的研究开发替代洗牌战略。
由于GraphX算法是迭代的和基于连接的,因此提高洗牌速度是一条明显的途径.
从那时起,可插式洗牌管理器被引入,以及新的基于排序的洗牌,这最终证明足够快使基于散列的洗牌和正在进行的提供基于通用内存的洗牌的工作都过时了。
https://stackoverflow.com/questions/59093654
复制相似问题