我在Spark上有几个与GraphX相关的基本问题 是否有资源可以帮助我理解GraphX如何在幕后工作 - 如何完成并行化 - 图表是如何分区的 - 可以在GraphX中实现任何图算法,还是只有可以实现的特定问题 - 例如 - 对于二分图 - 我们可以使用路径增强等编写匹配算法
非常感谢任何帮助
答案 0 :(得分:3)
(答案是由我提供的 - Michal Malak - 即将出版的书的作者 - GraphX in Action - Manning Press)
这些是很好的问题,我应该确保在书中解决这些问题
GraphX的三个主要注意事项: 1.它是图形处理,而不是图形数据库(书中已经提到过这个) 2.它适用于SIMD风格执行模型中的大规模并行顶点到顶点通信。它不适用于经典的图形算法,这就是为什么第6章的实现不适合GraphX的原因 3.一个肮脏的小秘密是,虽然有API控件来分割顶点(PartitionStrategy),但边总是随机分区。最糟糕的是,边和顶点是独立分区的,因此数据局部性的所有机会都会丢失。
然而,GraphX内部有一些内在的意外优化,即每条边都有到顶点的路由信息。