- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
大数据之Spark生态架构
Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框
架,最初于2009年由加州大学伯克利分校的AMPLab开发,并于2010
年成为Apache的开源项目之一。Spark提供了一个全面、统一的框架,
用于管理各种有着不同性质的数据集(文本数据、图表数据等)和数
据源(批量数据或实时的流数据)对大数据处理的需求。
一、Spark基本概念
Spark是基于内存计算的大数据并行计算框架,可用于构建大型
的、低延迟的数据分析应用程序。Spark最初的设计目标是使数据分
析更快——不仅程序运行速度要快,程序编写也要快速、容易。它可
以将Hadoop集群中的应用在内存中的运行速度提升100倍,甚至能
够将应用在磁盘上的运行速度提升10倍。为了使程序运行更快,Spark
提供了内存计算,减少了迭代计算时的I/O开销;而为了使程序编写
更容易,Spark使用简练、优雅的Scala编写,基于Scala提供交互式
的编程体系。
二、Spark生态系统
Spark生态系统主要包含SparkCore、SparkSQL、SparkStreaming、
StructuredStreaming、MLlib和GraphX等组件,如下图所示。
Spark生态系统
1、Spark组件功能
(1)SparkCore包含Spark的基本功能,如内存计算、任务调度、
部署模式、故障恢复、存储管理等,主要面向批量数据处理。SparkCore
建立在统一的抽象弹性分布式数据集(ResilientDistributedDataset,
RDD)之上,使其可以以基本一致的方式应对不同的大数据处理场景。
(2)SparkSQL允许开发人员直接处理RDD,同时也可查询Hive、HBase
等外部数据源。SparkSQL的一个重要特点是其能够统一处理关系表
和RDD,使得开发人员不需要自己编写Spark应用程序。
(3)SparkStreaming支持高吞吐量、可容错处理的实时流数据
处理,将流数据分解成一系列短小的批处理作业,每个短小的批处理
作业都可以使用SparkCore进行快速处理。
(4)StructuredStreaming是一种基于SparkSQL引擎构建的、可
扩展且容错的流处理引擎。通过一致的API,StructuredStreaming使
得使用者可以像编写批处理程序一样编写流处理程序,降低了使用者
的使用难度。
(5)MLlib提供常用机器学习算法的实现,包括聚类、分类、回
归、协同过滤等,降低了机器学习的门槛,开发人员只要具备一定的
理论知识就能进行机器学习工作。
(6)GraphX是Spark中用于图计算的API,可认为是Pregel在
Spark上的重写及优化。GraphX性能良好,拥有丰富的功能和运算符,
能在海量数据上自如地运行复杂的图算法。
2、Spark主要特点
(1)运行速度快
Spark使用先进的DAG执行引擎,以支持循环数据流与内存计算,
基于内存的执行速度可比HadoopMapReduce快上百倍,基于磁盘的
执行速度也能快10倍左右。
(2)容易使用
Spark支持使用Scala、Java、Python和R语言进行编程,简洁的
API设计有助于用户轻松构建并行程序,并且可以通过SparkShell进
行交互式编程。
(3)通用性
Spark提供完整而强大的技术栈,包括SQL查询、流式计算、机
器学习和图算法等组件,这些组件可以无缝整合在同一个应用中,足
以应对复杂的计算。
(4)运行模式多样
Spark可运行于独立的集群模式中,或者运行于Hadoop中,也
可运行于AmazonEC2等环境中,并且可以访问HDFS、Cassandra、
HBase、Hive等多种数据源。
三、Spark基本流程
Spark的
文档评论(0)