- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
1
第一章
初识Spark计算框架
1.1
Spark框架及特点
Apache
Spark
是一个专为大规模数据处理而设计的快速、通用的计算引擎。最初由加州大学伯
克利分校的
AMP
实验室(Algorithms,
Machines,
and
People
Lab)开发,并于
2010
年开
源,2014
年成为
Apache
顶级项目。Spark
的诞生旨在突破传统
Hadoop
MapReduce
在迭代
计算和内存利用上的局限性,与
MapReduce
不同,Spark
可以将作业中间结果缓存于内存中,
减少对磁盘的读写操作,因此在需要多次迭代计算的数据处理场景(如数据挖掘和机器学习)中
表现出色。
Spark官网地址:/。
Spark计算框架具备以下特点:
处理数据速度快
与
MapReduce
每个任务都需要将中间结果写入磁盘不同,Spark
能够将作业中间数据缓存于内
存中,得益于内存计算和优化的查询执行方式,Spark
在内存中的运算速度比
Hadoop
的
MapReduce
快
100
倍,在磁盘上的速度也快
10
倍。
简单易用
Spark在处理数据过程中提供了几十个丰富的高级API(算子操作),这些高级API大大降低了编程的
复杂度。
多语言支持
Spark
底层使用
Scala
编写,开发者可以使用
Scala、Java、Python、SQL
和
R
等语言进行编
程,满足不同开发者的需求。
丰富的生态系统
Spark
拥有多个功能强大的模块,通过这些模块可以处理结构/非结构数据、API/SQL处理批量/
流式数据、机器学习、图计算,使
Spark
能够处理多种复杂数据处理任务。
支持多模式运行部署
Spark
可以在单机、小型集群甚至上千节点的分布式环境中高效运行。它能够与多种集群管理器
(如
Standalone、YARN、Mesos、Kubernetes)和分布式存储系统(如
HDFS、Amazon
S3
等)无缝集成,适应不同规模的数据处理需求。
1.2
Spark生态模块
Spark
生态模块包括:SparkCore、SparkSQL、SparkStreaming、StructuredStreaming、
MLlib
和
GraphX。与
Hadoop
相关的整个技术生态如下图所示:
下面分别介绍Spark各个模块功能。
SparkCore
Spark
Core
是
Spark
的核心模块,提供了基本的功能和
API,包括任务调度、内存管理、故障
恢复等,它实现了弹性分布式数据集(RDD)的概念,支持对分布式数据集的并行操作,Spark其
他模块都是基于
Spark
Core
构建。
SparkSQL
Spark
SQL
模块用于处理结构化数据,支持使用标准SQL
进行数据分析、查询,SparkSQL中还
提供了
DataFrame
和
Dataset
API,方便开发者以声明式方式操作数据。此外,Spark
SQL
还
支持与
Hive
的集成,可以直接查询
Hive
仓库中的数据。
SparkSteaming
SparkStreaming
是基于
SparkCore
模块实现的,用于实时处理流数据的模块。它将实时数据流
分成小批次,然后通过类似于
Spark
Core
的
API
进行准实时数据处理。
StructuredStreaming
StructuredStreaming
是基于
SparkSQL
模块构建的可扩展且容错的流处理模块。它提供了一种
统一的编程模型,使开发者能够以
SQL
方式编写流式计算操作,可以轻松地对流数据进行转换、
聚合和分析。
MLlib
MLlib
模块是
Spark
的机器学习库,提供了常用的机器学习算法和工具,如分类、回归、聚类、
协同过滤等。它利用
Spark
的分布式计算能力,能够处理大规模数据集上的机器学习任务。
GraphX
GraphX
模块用于图计算,提供了用于表示图和执行图操作的
API。它支持常见的图算法,如
PageRank、连接组件等,方便开发者进行复杂的图数据分析。
1.3
Spark运行模式
Apache
Spark
提供了多种运行模式,以适应不同的开发、测试和生产环境需求。这些模式包含
Local
Mode、Standalone
Mode、Spark
On
Yarn
文档评论(0)