大数据之Spark:Spark 基础

article/2025/9/15 10:33:48

目录

  • 1、Spark 发展史
  • 2、Spark 为什么会流行
  • 3、Spark 特点
  • 4、Spark 运行模式

1、Spark 发展史

2009 年诞生于美国加州大学伯克利分校 AMP 实验室;
2014 年 2 月,Spark 成为 Apache 的顶级项目;

Spark 成功构建起了一体化、多元化的大数据处理体系。在任何规模的数据计算中, Spark 在性能和扩展性上都更具优势;

在 FullStack 理想的指引下,Spark 中的 Spark SQL 、SparkStreaming 、MLLib 、GraphX 、R 五大子框架和库之间可以无缝地共享数据和操作, 这不仅打造了 Spark 在当今大数据计算领域其他计算框架都无可匹敌的优势, 而且使得 Spark 正在加速成为大数据处理中心首选通用计算平台。

2、Spark 为什么会流行

原因 1:优秀的数据模型和丰富计算抽象

Spark 产生之前,已经有 MapReduce 这类非常成熟的计算系统存在了,并提供了高层次的 API(map/reduce),把计算运行在集群中并提供容错能力,从而实现分布式计算。

虽然 MapReduce 提供了对数据访问和计算的抽象,但是对于数据的复用就是简单的将中间数据写到一个稳定的文件系统中(例如 HDFS),所以会产生数据的复制备份,磁盘的 I/O 以及数据的序列化,所以在遇到需要在多个计算之间复用中间结果的操作时效率就会非常的低。而这类操作是非常常见的,例如迭代式计算,交互式数据挖掘,图计算等。

认识到这个问题后,学术界的 AMPLab 提出了一个新的模型,叫做 RDD。RDD 是一个可以容错且并行的数据结构(其实可以理解成分布式的集合,操作起来和操作本地集合一样简单),它可以让用户显式的将中间结果数据集保存在内存中,并且通过控制数据集的分区来达到数据存放处理最优化.同时 RDD 也提供了丰富的 API (map、reduce、filter、foreach、redeceByKey…)来操作数据集。后来 RDD 被 AMPLab 在一个叫做 Spark 的框架中提供并开源。

简而言之,Spark 借鉴了 MapReduce 思想发展而来,保留了其分布式并行计算的优点并改进了其明显的缺陷。让中间数据存储在内存中提高了运行速度、并提供丰富的操作数据的 API 提高了开发速度。

原因 2:完善的生态圈-fullstack

在这里插入图片描述

目前,Spark 已经发展成为一个包含多个子项目的集合,其中包含 SparkSQL、Spark Streaming、GraphX、MLlib 等子项目。
Spark Core:实现了 Spark 的基本功能,包含 RDD、任务调度、内存管理、错误恢复、与存储系统交互等模块。

Spark SQL:Spark 用来操作结构化数据的程序包。通过 Spark SQL,我们可以使用 SQL 操作数据。

Spark Streaming:Spark 提供的对实时数据进行流式计算的组件。提供了用来操作数据流的 API。

Spark MLlib:提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。

GraphX(图计算):Spark 中用于图计算的 API,性能良好,拥有丰富的功能和运算符,能在海量数据上自如地运行复杂的图算法。

集群管理器:Spark 设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。

Structured Streaming:处理结构化流,统一了离线和实时的 API。

原因 3:Spark VS Hadoop

HadoopSpark
类型分布式基础平台, 包含计算, 存储, 调度分布式计算工具
场景大规模数据集上的批处理迭代计算, 交互式计算, 流计算
价格对机器要求低, 便宜对内存有要求, 相对较贵
编程范式Map+Reduce, API 较为底层, 算法适应性差RDD 组成 DAG 有向无环图, API 较为顶层, 方便使用
数据存储结构MapReduce 中间计算结果存在 HDFS 磁盘上, 延迟大RDD 中间运算结果存在内存中 , 延迟小
运行方式Task 以进程方式维护, 任务启动慢Task 以线程方式维护, 任务启动快

💖 注意:
尽管 Spark 相对于 Hadoop 而言具有较大优势,但 Spark 并不能完全替代 Hadoop,Spark 主要用于替代 Hadoop 中的 MapReduce 计算模型。存储依然可以使用 HDFS,但是中间结果可以存放在内存中;调度可以使用 Spark 内置的,也可以使用更成熟的调度系统 YARN 等。
实际上,Spark 已经很好地融入了 Hadoop 生态圈,并成为其中的重要一员,它可以借助于 YARN 实现资源调度管理,借助于 HDFS 实现分布式存储。
此外,Hadoop 可以使用廉价的、异构的机器来做分布式存储与计算,但是,Spark 对硬件的要求稍高一些,对内存与 CPU 有一定的要求。

3、Spark 特点


与 Hadoop 的 MapReduce 相比,Spark 基于内存的运算要快 100 倍以上,基于硬盘的运算也要快 10 倍以上。Spark 实现了高效的 DAG 执行引擎,可以通过基于内存来高效处理数据流。

易用
Spark 支持 Java、Python、R 和 Scala 的 API,还支持超过 80 种高级算法,使用户可以快速构建不同的应用。而且 Spark 支持交互式的 Python 和 Scala 的 shell,可以非常方便地在这些 shell 中使用 Spark 集群来验证解决问题的方法。

通用
Spark 提供了统一的解决方案。Spark 可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用。Spark 统一的解决方案非常具有吸引力,毕竟任何公司都想用统一的平台去处理遇到的问题,减少开发和维护的人力成本和部署平台的物力成本。

兼容性
Spark 可以非常方便地与其他的开源产品进行融合。比如,Spark 可以使用 Hadoop 的 YARN 和 Apache Mesos 作为它的资源管理和调度器,并且可以处理所有 Hadoop 支持的数据,包括 HDFS、HBase 和 Cassandra 等。这对于已经部署 Hadoop 集群的用户特别重要,因为不需要做任何数据迁移就可以使用 Spark 的强大处理能力。Spark 也可以不依赖于第三方的资源管理和调度器,它实现了 Standalone 作为其内置的资源管理和调度框架,这样进一步降低了 Spark 的使用门槛,使得所有人都可以非常容易地部署和使用 Spark。此外,Spark 还提供了在 EC2 上部署 Standalone 的 Spark 集群的工具。

4、Spark 运行模式

local 本地模式(单机)–学习测试使用

分为 local 单线程和 local-cluster 多线程。

standalone 独立集群模式–学习测试使用

典型的 Mater/slave 模式。

standalone-HA 高可用模式–生产环境使用

基于 standalone 模式,使用 zk 搭建高可用,避免 Master 是有单点故障的。

on yarn 集群模式–生产环境使用

运行在 yarn 集群之上,由 yarn 负责资源管理,Spark 负责任务调度和计算。

好处:计算资源按需申请,集群利用率高,共享底层存储,避免数据跨集群迁移。

on mesos 集群模式–国内使用较少

运行在 mesos 资源管理器框架之上,由 mesos 负责资源管理,Spark 负责任务调度和计算。

on cloud 集群模式–中小公司未来会更多的使用云服务

比如 AWS 的 EC2,使用这个模式能很方便的访问 Amazon 的 S3。


http://chatgpt.dhexx.cn/article/s9k6sWUZ.shtml

相关文章

大数据之spark详解

目录 什么是spark: 功能历史上和hadoop的区别: spark的五大核心模块: ➢ Spark Core 什么是spark: 简单一点Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。属于mapreduce的加强版本,结合了其优点…

09.大数据技术之Spark

文章目录 一、Spark概述1、概述2、Spark特点 二、Spark角色介绍及运行模式1、集群角色2、运行模式 三、Spark集群安装1.Local模式1.下载文件2.解压缩3、修改配置文件4.配置环境变量5.启动服务6.启动客户端 2.Standalone模式1.停止服务2.修改配置文件spark-env.sh3.修改配置文件…

大数据框架之Spark详解

目录 1 Spark概述1.1 Spark是什么?1.2 Spark内置模块1.3 Spark 特点 2 RDD概述2.1 什么是RDD?2.2 RDD的属性2.3 RDD特点2.4 弹性体现在哪?2.5 分区2.6 分区2.7 依赖2.8 缓存2.9 CheckPoint 1 Spark概述 1.1 Spark是什么? Spark是…

大数据学习 之 Spark 概述

文章目录 一、Spark简介Spark与Hadoop的区别部署模式 二、 Spark架构1.Driver2.Executor3.Master & Worker4.Cluster manager5.ApplicationMaster补充点:Stage执行过程 三、Shuffle机制shuffle介绍Shuffle的影响导致Shuffle的操作 四、RDD(弹性分布式…

大数据技术---Spark

一、Spark简介 1、Spark概述 Spark:由美国加州伯克利大学的AMP实验室于2009年开发,基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。 三大分布式计算系统开源项目:Hadoop、Spark、Storm。 Spark的…

KB、MB、GB等和KiB、MiB、GiB等的区别

今天装系统RHEL7.7,在分区时发现单位变成MiB、GiB了,有点奇怪就查了查。 区别: KB、MB、GB等单位以10为底数的指数 KiB、MiB、GiB等单位是以2为底数的指数 如:1KB10^31000, 1MB10^610000001000KB,1GB10^910000000001000MB,而 …

asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).

webpack打包提示文件体积过大导致: The following asset(s) exceed the recommended size limit (244 KiB). This can impact web performance. entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 Ki…

当git clone遇到client_loop:send disconnect: Connection reset by peer00 Kib/s

当git clone遇到client_loop:send disconnect: Connection reset by peer00 Kib/s 1. 问题描述2.问题解决3.原因分析 1. 问题描述 刚换了新电脑,重新配置了下git仓库的ssh后,迫不及待想 git clone 先项目。发现遇到个问题: 在执行 git clone…

Kibana

Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。 你用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。 你可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。…

WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB)

Taro打包h5体积限制 警告: WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB). 可以使用webpack-bundle-analyzer插件对打包体积进行分析,参考代码: webpackChain (chain) {chain.plug…

【名词解释】KiB和KB,MiB和MB,GiB和GB 等的区别以及1M带宽到底是多少?

目录 1. KiB和KB,MiB和MB,GiB和GB 2. 宽带速度 3. 单位换算 1. KiB和KB,MiB和MB,GiB和GB KiB和KB,MiB和MB,GiB和GB 等的区别: 1KB(kilobyte)10^31000byte, 1KiB(kibibyte)2^101024byte …

b、B、KB、Kib、MB、MiB、GB、GiB、TB、TiB的区别

1024这个数字,想必计算机行业从业人员应该不会陌生,甚至10月24日还被当做程序员日,如果你问一个程序员1GB等于多少MB,他大概率会不假思索回答:1024。 没错,对于稍微对计算机或者网络有了解的人,一般都认为1024是数据容…

KB和KiB的区别是什么?

KB和KiB的区别是什么? 文章目录 KB和KiB的区别是什么?前言MB与MiB的区别:KB和KiB的区别为什么买到的硬盘容量总是会少一些? 前言 今天整理资料时发现使用windows自带的资源管理器查看文件夹大小时计算很缓慢, 机智的我想到了使用dir命令来查看 哈哈~…

KiB是什么单位

kiB1024byte kb1000byte

linux必备软件合集

Ubuntu常用软件合集 我用的使Ubuntu-Kylin14.04,原因呢主要是觉得使本土化的,自带了日历、输入法、优客助手等易于上手的应用。也省的每次安装完原生的系统再麻烦的安装,但是这些软件并不仅仅局限于ubuntu14.04 美化篇 刚装上ubuntu,看起来很朴素&…

软件测试周刊(第82期):其实所有纠结做选择的人心里早就有了答案,咨询只是想得到内心所倾向的选择。

欢迎来到第 82 期!这里记录过去一周我们看到的软件测试及周边的行业动态,周五发布。 本期看点:B站是如何建设移动真机测试集群的?百人测试团队的测试效能体系应该如何建设?闲鱼交易链路自动化回归测试是怎么做的&#…

傻瓜式安装stable diffusion图像生成软件

目录 1、打开:https://colab.research.google.com/ 2、复制一下代码: 3、粘贴到下方,按运行按钮。 4、打开安装好的软件。上框复制以下代码: 5、下框复制以下代码: 6、如下图设置及操作: 1、打开&#…

html如何用mp4做背景音乐,如何用相片制作mv配上流行mp3背景音乐 打造自己的mv

准备好自己的相片,支持的相片(图片)格式为office powerpoint支持的就可以。具体支持什么相片格式,如何用相片制作mv再配上背景音乐呢;整个操作步骤是很简单的,如果是刚开始学习并对相关制作不太了解的朋友可能要多认真花点时间了解…

软件工程复习笔记

文章目录 1、软件工程概论(1)背景:软件危机表现方法软件工程管理软件工程技术 原因 (2)软件工程定义三要素生命周期软件定义软件开发运行维护 2、过程模型(1)瀑布模型特点优点缺点适用场合 &…

软件测试面试大全

软件测试面试大全 一、软件测试基础部分1、软件项目成员有哪些?2、软件的概念是什么?3、你对软件测试的定义是怎么的?4、你对软件Bug的概念是怎样的?5、软件Bug级别有几种?6、软件Bug状态有哪些?7、你对软件…