首页 理论教育 高层应用模块的应用与优势

高层应用模块的应用与优势

时间:2023-06-28 理论教育 版权反馈
【摘要】:表9-2MLlib已经实现的算法9.3.3.3GraphXGraphX是构建于Spark上的图计算模型,GraphX利用Spark框架提供的内存缓存RDD、DAG和基于数据依赖的容错等特性,实现高效健壮的图计算框架。

高层应用模块的应用与优势

9.3.3.1 Spark SQL

Spark SQL作为Spark大数据框架的一部分,主要用于结构化数据处理和对Spark数据执行类SQL的查询,并且与Spark生态的其他模块无缝结合。Spark SQL兼容SQL,Hive,JSON、JDBC和ODBC等操作。Spark SQL的前身是Shark,而Shark的前身是Hive。Shark比Hive在性能上要高出一到两个数量级,而Spark SQL比Shark在性能上又要高出一到两个数量级。

9.3.3.2 MLlib

MLlib是一个分布式机器学习库,即在Spark平台上对一些常用的机器学习算法进行了分布式实现,随着版本的更新,它也在不断扩充新的算法。MLlib支持多种分布式机器学习算法,如分类、回归、聚类等。MLlib已经实现的算法如表9-2所示。

表9-2 MLlib已经实现的算法

9.3.3.3 GraphX

GraphX是构建于Spark上的图计算模型,GraphX利用Spark框架提供的内存缓存RDD、DAG和基于数据依赖的容错等特性,实现高效健壮的图计算框架。GraphX的出现,使得Spark生态系统在大图处理和计算领域得到了更加的完善和丰富,同时其与Spark生态系统其他组件进行很好的融合,以及强大的图数据处理能力,使其广泛地应用在多种大图处理的场景中。

GraphX实现了很多能够在分布式集群上运行的并行图计算算法,而且还拥有丰富的API接口。因为图的规模大到一定的程度之后,需要将算法并行化,以方便其在分布式集群上进行大规模处理。GraphX优势就是提升了数据处理的吞吐量和规模。

9.3.3.4 Spark Streaming

Spark Streaming是Spark系统中用于处理流数据的分布式流处理框架,扩展了Spark流式大数据处理能力。Spark Streaming将数据流以时间片为单位进行分割形成RDD,能够以相对较小的时间间隔对流数据进行处理。Spark Streaming还能够和其余Spark生态的模块如Spark SQL,GraphX,MLlib等Spark生态的其余模块进行无缝的集成,以便联合完成基于实时流数据处理的复杂任务。如果要用一句话来概括Spark Streaming的处理思路的话,那就是“将连续的数据持久化、离散化,然后进行批量处理”。(www.xing528.com)

(1)数据持久化。将从网络上接收到的数据先暂时存储下来,为事件处理出错时的事件重演提供可能。

(2)数据离散化。数据源源不断地涌进,永远没有尽头。既然不能穷尽,那么就将其按时间分片。比如采用1 min为时间间隔,那么在连续的1 min内收集到的数据就集中存储在一起

(3)批量处理。将持久化下来的数据分批进行处理,处理机制套用之前的RDD模式。

Spark Streaming的计算流程如图9-10所示。

图9-10 Spark Streaming的计算流程

(1)Spark Streaming将实时输入的数据流(Data Stream)分解成一系列短小的批处理作业(Baches)。也就是把Spark Streaming的输入数据按照Batch Size(如1 s)分成一段一段的数据(Discretized Stream,简称DStream)。

(2)将每一段数据(DStream)都转换成Spark中的RDD,保存到Spark的内存中,由内存管理器(Memory Manager)进行管理,记录下RDD生成的轨迹。

(3)将Spark Streaming中对DStream的Transformation操作变为针对Spark中对RDD的Transformation操作,交给Spark中的任务调度程序(Task Scheduler)。

(4)执行RDD的Action操作,将任务提交给计算引擎,将批处理的计算结果(Batches Of Results)输出。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈