0 项目说明
基于Spark图计算的社会网络分析系统的设计和实现-顶点分析
提示:适合用于课程设计或毕业设计,工作量达标,源码开放
1 项目说明
随着 SNS( Social Networking Sites, 社交网站)如 Renren、 Facebook 等的快速发展,SNA(Social Network Analysis,社会网络分析)逐渐成为研究的重点。现代 SN(Social Network,社会网络)往往都是几百万甚至上千万的超大规模数据集,因此如何处理大规模的社会网络数据集成为社会网络分析面临的一个较为严峻的挑战。
目前面向海量数据的社会网络分析工具主要基于Hadoop MapReduce设计,如X-RIME。新兴的Spark拥有Hadoop MapReduce所具有的优点,但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的算法。典型的社交网络模型由顶点和边组成,边的属性依赖于顶点的属性,因此,顶点分析是社会网络分析的基础。
本文在Spark及图计算引擎GraphX的基础上,设计并实现一套用于顶点分析的社交网络分析系统,为使用Spark进行大规模社交网络的顶点分析提供具体接口,包括社交网络的图模型构建、顶点重要度估值、顶点间路径的计算、顶点分组等接口,并对计算结果进行了一定程度上的可视化展现。主要工作包括两个方面:第一是构建图和数据可视化的实现;第二是具体的顶点分析接口的实现。
2 系统功能
整个系统分为三大功能块,分别是:图构建模块,可视化模块和顶点分析模块。在顶点分析模块中,用户可以进行顶点重要程度分析、顶点分组(聚类)、顶点邻居计算、顶点到顶点路径计算等多角度的分析。
3 系统架构
首先,由于现实的数据往往不是直接以图形式呈现的,需要进行数据的清洗、提取,并转换为能为GraphX图计算引擎操作的数据,因此有必要在大规模图数据挖掘平台中包含非图数据的计算处理能力;其次,一个平台能够完成对图数据和非图数据的挖掘任务,有助于节约集群资源,简化平台管理;最后,采用两种并行计算框架分别完成图数据计算和非图数据计算需要开发人员了解两种程序的设计模式,影响系统的二次开发能力。 因此,本文提出采用Spark并行计算框架作为系统的非图数据处理引擎,采用 Spark的图计算接口GraphX作为系统的图数据计算引擎,解决上述问题。
系统整体架构包含:提供数据导入、预处理的Spark平台层,提供图计算接口的图计算引擎层,提供个性化图数据分析能力的算子层,提供分析结果图形化展示的可视化层。
系统的一个重要可拓展性在于用户可以根据自己的新需求往算子层添加自定义的算子来满足自己的分析需求。
4 效果展示