Spark GraphX实战 - (EPUB全文下载)

文件大小:0.32 mb。
文件格式:epub 格式。
书籍内容:

Spark GraphX实战
第1部分 Spark和图
第2部分 连接顶点
第3部分 更多内容
附录A 安装Spark
附录B Gephi可视化软件
附录C 更多资源
附录D 本书中的Scala小贴士
第1部分 Spark和图
图是由顶点和边组成的,并非代数(Algebra)中的图概念。图看起来非常强大,使用起来有一些窍门。类似这种“图可以做任何事情”的说法是毫无意义的。废话少说,第1章,我们从现实中发现图的分类开始介绍。在第3章会介绍图的相关术语。
Apache Spark是一个以高性能著称的分布式计算框架。GraphX是Spark在图计算方面的应用,第1章描述了GraphX是如何满足数据处理工作流的。第2章会介绍Google发起的PageRank算法。
第3章是一个快速教程,介绍本书要求掌握的三种基础技术:Spark、Scala和图。
1 两项重要的技术:Sp1ark和图
本章要点
■Spark为何能成为领先的大数据处理系统
■是什么让图成为模型化连接数据的唯一方法
■GraphX如何让Spark成为图计算和分析的首要平台
众所周知,我们正在产生比以往更多的数据。然而并不是只有数据本身重要,数据之间的联系同样重要。从这些有关联的数据集中抽取出有用的信息,可以深入了解很多领域,如检测欺诈、收集生物信息学数据和进行Web网页排名等。
图提供了一种强大的方式来表示和利用数据间的连接。图表示由顶点和顶点连接的边构成的数据点网络。图可以用于各种领域,如计算机视觉、自然语言处理和推荐系统等。
用这样一个连接的数据(connected data)的表示,以及一些工具和技术,就可以挖掘来自网络的信息内容。在本书中涉及的众多工具中,你会发现PageRank可以用来发现网络中最有影响力的成员,隐含狄利克雷分配(LDA,Latent Dirichlet Allocation)用于话题模型(topic modeling),聚类系数用来发现高度联通的社区等。
用于分析数据的传统工具如关系型数据库,并不适合解决这类问题。面向表(table-oriented)的框架,如用SQL来表示一个如追踪链的经典图概念就显得很笨重。此外,当被分析的数据量增加时,传统的数据处理方法不能扩容。
一个现成的解决办法是用图处理系统。这样的系统提供了数据模型和编程接口,以便更自然地查询和分析图。图处理系统提供了多种方法从原始数据源构建图,应用处理函数到图中,以便挖掘其中的信息内容。
Apache Spark是取代Hadoop的大数据处理的可选方案,Spark这个开源数据处理平台引领着大数据时代。因易于伸缩数百节点的集群,Spark的内存数据处理能力胜过Hadoop很多倍。
GraphX是一个在Spark之上的图处理层,带来了因为图数据太大单机无法处理的强大的图大数据处理能力。很久之前人们就开始在图处理方面使用Spark,包括Bagel这类预处理模块,现在有了标准的图计算模块GraphX,它提供了一些常用的图算法库。
选择使用Spark GraphX的理由,包含以下几种。
■你已经有了Spark的数据处理流水线,想混合使用图处理。
■你好奇Spark或GraphX的强大能力。
■图数据计算对你来说很重要。
■图数据太大,单机无法处理。
■要么你不需要多个应用访问相同数据仓库,要么你计划增加一个REST 服务器到Spark,如增加Ooyala的Spark Job Server。
■要么你不需要数据库类型的事务,要么你计划用Neo4j或Titan这样的图数据库结合GraphX一起使用。
■你已经有了一个可用的Spark集群。
■你喜欢Scala语言简明强大的表达能力。
1.1 Spark:超越Hadoop MapReduce
在这一节中,我们讨论Spark和图的关系。大数据对一些数据科学团队来说是主要的挑战,因为在要求的可扩展性方面单机没有能力和容量来运行大规模数据处理。此外,即使专为大数据设计的系统,如Hadoop,由于一些数据的属性问题也很难有效地处理图数据,我们将在本章的其他部分看到这方面的内容。
Apache Spark与Hadoop类似,数据分布式存储在服务器的集群或者是“节点”上。不同的是,Spark将数据保存在内存(RAM)中,Hadoop把数据保存在磁盘(机械硬盘或者SSD固态硬盘)中,如图1.1所示。
定义:在图和集群计算方面,“节点”这个词有两种截然不同的意思。图数据由顶点和边组成,在这里“节点”与顶点的意思相近。在集群计算方面,组成集群的物理机器也被称为“节点”。为避免混淆,我们称图的节点为顶点,这也是Spark中的专有名词。而本书中的“节点”这个词我们严格定义为集群中的单个物理计算节点。
图1.1 大数据因为数据量大单机无法处理。Hadoop和Spark都是把数据分布在集群节点上的分布式框架中。Spark把分布式数据集存放在内存中,所以比Hadoop把数据存放在磁盘中处理速度要快很多。
除了将要计算的数据保存的位置不同(内存和磁盘),Spark的API比Hadoop的Map/Reduce API更容易使用。Spark使用简洁且表达力较好的Scala作为原生编程语言,写Hadoop Map/Reduce的Java代码行数与写Spark的Scala的代码行的数量比一般是10:1。
虽然本书主要使用Scala,但是你对Scala不熟悉也不用担心,我们在第3章提供了快速入门,包括怪异、晦涩和简练的Scala语法。进一步熟悉Java、C++、C#、Python等至少一门编程语言是必要的。
1.1.1 模糊的大数据定义
现在的“大数据”概念已经被很大程度地夸大了。大数据的概念可以追溯到Google在2003年发表的Google文件系统的论文和2004年发表的Map/Reduce论文。
大数据这个术语有多种不同的定义,并且有些定义已经失去了大数据所应有的意义。但是简单的核心且至关重要的意义是:大数据是因数据本身太大,单机无法处理。
数据量已经呈爆炸性 ............

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家 AI应用导航 研报之家
书云 Open E-Library » Spark GraphX实战 - (EPUB全文下载)