8.3.1 GraphX简介
GraphX是常用图算法在Spark上的并行化实现,提供了丰富的API接口。图算法是很多复杂机器学习算法的基础,在单机环境下有很多应用案例。在大数据环境下,图的规模大到一定程度后,单机很难解决大规模的图计算,需要将算法并行化,在分布式集群上进行大规模图处理。目前,比较成熟的方案有GraphX和GraphLab等大规模图计算框架。图8-20为GraphX发展史简图。
图8-20 GraphX发展史
GraphX的特点是离线计算、批量处理、基于同步的整体同步并行计算模型(即BSP计算模型),这样的优势在于可以提升数据处理的吞吐量和规模,但是会造成速度上稍逊一筹。目前大规模图处理框架还有基于MPI模型的异步图计算模型GraphLab和同样基于BSP模型的Giraph等。
现在和GraphX可以组合使用的分布式图数据库是Neo4J和Titan。Neo4j一个高性能的、非关系的、具有完全事务特性的、鲁棒的图数据库。Titan是一个分布式的图形数据库,特别为存储和处理大规模图形而优化。二者均可作为GraphX的持久化层,存储大规模图数据。