大数据框架基础Spark是什么?Spark和Hadoop的区别

大数据框架Hadoop和Spark的异同 谈到大数据,相信大家对Hadoop和Apache Spark这两个名字并不陌生。但我们往往对它们的理解只是提留在字面上,并没有对它们进行深入的思考,下面不妨跟我一块看下它们究竟有什么异同。解决问题的层面不一样 首先,Hadoop和Apache Spark两者都是大数据框架,但是各自存在的目的不尽相同。Hadoop实质上更多是一个分布式数据基础设施:它将巨大的数据集分派到一个由普通计算机组成的集群... 阅读详情

Spark 是加州大学伯克利分校 AMP(Algorithms,Machines,People)实验室开发的通用内存并行计算框架。

Spark 在 2013 年 6 月进入 Apache 成为孵化项目,8 个月后成为 Apache 顶级项目。

Spark 以其先进的设计理念,迅速成为社区的热门项目,围绕着 Spark 推出了 SparkSQL、SparkStreaming、MLlib 和 GraphX 等组件,逐渐形成大数据处理一站式解决平台。

Spark 与 Hadoop

Hadoop 已经成了大数据技术的事实标准,Hadoop MapReduce 也非常适合于对大规模数据集合进行批处理操作,但是其本身还存在一些缺陷。特别是 MapReduce 存在的延迟过高,无法胜任实时、快速计算需求的问题,使得需要进行多路计算和迭代算法的用例的作业过程并非十分高效。

根据 Hadoop MapReduce 的工作流程,可以分析出 Hadoop MapRedcue 的一些缺点。

1)Hadoop MapRedue 的表达能力有限。

所有计算都需要转换成 Map 和 Reduce 两个操作,不能适用于所有场景,对于复杂的数据处理过程难以描述。

2)磁盘 I/O 开销大。

Hadoop MapReduce 要求每个步骤间的数据序列化到磁盘,所以 I/O 成本很高,导致交互分析和迭代算法开销很大,而几乎所有的最优化和机器学习都是迭代的。所以,Hadoop MapReduce 不适合于交互分析和机器学习。

3)计算延迟高。

如果想要完成比较复杂的工作,就必须将一系列的 MapReduce 作业串联起来然后顺序执行这些作业。每一个作业都是高时延的,而且只有在前一个作业完成之后下一个作业才能开始启动。因此,Hadoop MapReduce 不能胜任比较复杂的、多阶段的计算服务。

Spark 是借鉴了 Hadoop MapReduce 技术发展而来的,继承了其分布式并行计算的优点并改进了 MapReduce 明显的缺陷。

Spark 使用 Scala 语言进行实现,它是一种面向对象的函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集。它具有运行速度快、易用性好、通用性强和随处运行等特点,具体优势如下。

1)Spark 提供了内存计算,把中间结果放到内存中,带来了更高的迭代运算效率。通过支持有向无环图(DAG)的分布式并行计算的编程框架,Spark 减少了迭代过程中数据需要写入磁盘的需求,提高了处理效率。

2)Spark 为我们提供了一个全面、统一的框架,用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数据)的大数据处理的需求。

Spark 使用函数式编程范式扩展了 MapReduce 模型以支持更多计算类型,可以涵盖广泛的工作流,这些工 作流之前被实现为 Hadoop 之上的特殊系统。

Spark 使用内存缓存来提升性能,因此进行交互式分析也足够快速,缓存同时提升了迭代算法的性能,这使得 Spark 非常适合数据理论任务,特别是机器学习。

3)Spark 比 Hadoop 更加通用。Hadoop 只提供了 Map 和 Reduce 两种处理操作,而 Spark 提供的数据集操作类型更加丰富,从而可以支持更多类型的应用。

Spark 的计算模式也属于 MapReduce 类型,但提供的操作不仅包括 Map 和 Reduce,还提供了包括 Map、Filter、FlatMap、Sample、GroupByKey、ReduceByKey、Union、Join、Cogroup、MapValues、Sort、PartionBy 等多种转换操作,以及 Count、Collect、Reduce、Lookup、Save 等行为操作。

4)Spark 基于 DAG 的任务调度执行机制比 Hadoop MapReduce 的迭代执行机制更优越。

Spark 各个处理结点之间的通信模型不再像 Hadoop 一样只有 Shuffle 一种模式,程序开发者可以使用 DAG 开发复杂的多步数据管道,控制中间结果的存储、分区等。

图 1 对 Hadoop 和 Spark 的执行流程进行了对比。

Hadoop 与 Spark 执行流程对比
图 1  Hadoop 与 Spark 执行流程对比

从中可以看出,Hadoop 不适合于做迭代计算,因为每次迭代都需要从磁盘中读入数据,向磁盘写中间结果,而且每个任务都需要从磁盘中读入数据,处理的结果也要写入磁盘,磁盘 I/O 开销很大。而 Spark 将数据载入内存后,后面的迭代都可以直接使用内存中的中间结果做计算,从而避免了从磁盘中频繁读取数据。

对于多维度随机查询也是一样。在对 HDFS 同一批数据做成百或上千维度查询时,Hadoop 每做一个独立的查询,都要从磁盘中读取这个数据,而 Spark 只需要从磁盘中读取一次后,就可以针对保留在内存中的中间结果进行反复查询。

Spark 在 2014 年打破了 Hadoop 保持的基准排序(SortBenchmark)记录,使用 206 个结点在 23 分钟的时间里完成了 100TB 数据的排序,而 Hadoop 则是使用了 2000 个结点在 72 分钟才完成相同数据的排序。也就是说,Spark 只使用了百分之十的计算资源,就获得了 Hadoop 3 倍的速度。

尽管与 Hadoop 相比,Spark 有较大优势,但是并不能够取代 Hadoop。

因为 Spark 是基于内存进行数据处理的,所以不适合于数据量特别大、对实时性要求不高的场合。另外,Hadoop 可以使用廉价的通用服务器来搭建集群,而 Spark 对硬件要求比较高,特别是对内存和 CPU 有更高的要求。

Spark 的适用场景

总而言之,大数据处理场景有以下几个类型。

1)复杂的批量处理

偏重点是处理海量数据的能力,对处理速度可忍受,通常的时间可能是在数十分钟到数小时。

2)基于历史数据的交互式查询

通常的时间在数十秒到数十分钟之间。

3)基于实时数据流的数据处理

通常在数百毫秒到数秒之间。

目前对以上三种场景需求都有比较成熟的处理框架。,

  • 用 Hadoop 的 MapReduce 技术来进行批量海量数据处理。
  • 用 Impala 进行交互式查询。
  • 用 Storm 分布式处理框架处理实时流式数据。

以上三者都是比较独立的,所以维护成本比较高,而 Spark 能够一站式满足以上需求。

通过以上分析,可以总结 Spark 的适应场景有以下几种。

1)Spark 是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大;数据量小但是计算密集度较大的场合,受益就相对较小。

2)Spark 适用于数据量不是特别大,但是要求实时统计分析的场景。

3)由于 RDD 的特性,Spark 不适用于那种异步细粒度更新状态的应用,例如,Web 服务的存储,或增量的 Web 爬虫和索引,也就是不适合增量修改的应用模型。

推荐学习目录:Spark总体架构和运行流程

Spark简介以及最详细安装教程 首先来聊聊什么是Spark?为什么现在那么多人都用Spark? Spark简介: Spark是一种通用的大数据计算框架,是基于**RDD(弹性分布式数据集)**的一种计算模型。那到底是什么呢?可能很多人还不是太理解,通俗讲就是可以分布式处理大量集数据的,将大量集数据先拆分,分别进行计算,然后再将计算后的结果进行合并。 为什么使用Spark ... 阅读详情

相关推荐

透过Hadoop,Spark,mapreduce,Linux简单操作介绍来了解沉鱼落雁闭月羞花倾国倾城的我

一、介绍Hadoop基础知识一、介绍Hadoop基础知识1.Hadoop是什么Hadoop是一个由Apache基金会所开发的开源分布式系统基础架构,hadoop完全分布式集群用来对数据存储和分析计算。(1)高可靠性:(2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。(3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。(4)高容错性:能够自动将失败的任23务重新分配。

2301_78717896的博客 899

Spark入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

Hive 是将 SQL 转为 MapReduce。SparkSQL 可以理解成是将 SQL 解析成:“RDD + 优化” 再执行在学习Spark SQL前,需要了解数据分类。

Javachichi的博客 15万+

大数据常见面试问题╮(╯▽╰)╭

以下是一些常见的大数据面试问题。

在全栈和前端徘徊的程序员 962

Spark和Hadoop的区别

hadoop Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System ,HDFS)。HDFS 有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序

冰恋冬的专栏 2万+

Hadoop,Hive和Spark大数据框架的联系和区别

        Hadoop,Hive和Spark是大数据相关工作中最常用的三种框架。 1 Hadoop         hadoop是一个分布式计算框架,是大数据处理的基石,大多其他框架都是以hadoop为基础。Hadoop主要包括两个方面,分别是分布式存储框架(HDFS)和分布式计算框架(Mapreduce)。 1.1 HDFS分布式存储 &nb

weiyaner的博客 5319

大数据|Spark介绍

park为了解决以往分布式计算框架存在的一些问题(重复计算、资源共享、系统组合),提出了一个分布式数据集的抽象数据模型:RDD(Resilient Distributed Datasets)弹性分布式数据集。

知识库搭建ing 9842

Spark详解

Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。在之前的学习中,Hadoop的 MapReduce 是大家广为熟知的计算框架,那为什么咱们还要学习新的计算框架 Spark 呢,这里就不得不提到 Spark 和 Hadoop 的关系。

qq_40322236的博客 7443

解锁医疗AI密码:医疗人工智能专业大学四年学习路径

医疗AI人才培养路径解析 本文系统梳理了医疗人工智能专业四年培养方案,分为基础、进阶、应用和拓展四个阶段: 大一聚焦基础学科,涵盖高等数学、医学概论、Python编程等核心课程,辅以医学数据认知实习。大二深入机器学习和医学数据处理领域,学习监督/无监督学习算法及医学影像分析技术。大三进入深度学习阶段,掌握CNN/RNN等神经网络模型,并实践医疗AI应用开发。大四关注前沿技术如大模型在医疗中的应用,完成毕业设计与企业实习。 课程体系强调医工交叉,每学期均配置实践环节,从基础编程到参与真实医疗AI项目,逐步培养

AllenLV的博客 2503

spark和Hadoop的区别和联系

2301_81665462的博客 562

Ollama模型路径迁移实战:Windows/Mac/Linux三系统保姆级教程(附常见问题排查)

本文提供了一份详细的Ollama模型路径迁移教程,涵盖Windows、macOS和Linux三大操作系统。针对默认安装路径占用系统盘空间的问题,文章指导用户如何安全移动模型文件、配置环境变量、重启服务,并附有迁移后的验证步骤与常见问题排查方法,帮助用户高效管理本地AI模型存储。

gray5的博客 543

使用 git一个仓库管理多个项目

我们需要在 git 里面创建一个空分支,该分支不继承任何提交,没有父节点,完全是一个干净的分支,这时候就需要使用 orphan。该命令会创建一个新的分支,并且该分支有前一个分支下的所有文件,我们不想提交任何内容,所以我们需要把当前内容全部删除。此时 master 分支已经有一个项目了,下面我们创建新的分支管理另一个项目。此时可以在该分支目录上初始化你的项目,在执行 git 命令提交代码。此时我们就完成了在同一个仓库管理不同项目的需求了。下载仓库到本地之后,进入项目目录,查看分支信息。

xrs151的博客 2028

Hadoop和Apache Spark的异同

谈到大数据,相信大家对Hadoop和Apache Spark这两个名字并不陌生。但我们往往对它们的理解只是提留在字面上,并没有对它们进行深入的思考,下面不妨跟我一块看下它们究竟有什么异同。 1、解决问题的层面不一样 首先,Hadoop和Apache Spark两者都是大数据框架,但是各自存在的目的不尽相同。Hadoop实质上更多是一个分布式数据基础设施: 它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,意味着您不需要购买和维护昂贵的服务器硬件。 同时,H...

zongyimin的博客 708

集群路径规划实战(一)之EGO-swarm环境搭建与调试

本文详细介绍了EGO-swarm分布式无人机集群运动规划系统的仿真环境搭建与调试全流程。内容涵盖ROS Melodic安装、代码获取、依赖库配置、编译问题解决(如multi_map_server头文件缺失)以及最终通过roslaunch启动集群仿真与Rviz可视化,为学习和研究集群路径规划算法提供了可运行的实战平台。

weixin_29243279的博客 251

处理大数据的基础架构,OLTP和OLAP的区别,数据库与Hadoop、Spark、Hive和Flink大数据技术

处理大数据的基础架构,OLTP和OLAP的区别,数据库与Hadoop、Spark、Hive和Flink大数据技术

weixin_46838716的博客 2431

spark 适配达梦数据库

spark 适配达梦数据库 版本 spark3.0.0 scala2.12.10 DM Database Server 64 V8 步骤一: 引驱动包: SBT方式: "com.dameng" % "Dm8JdbcDriver18" % "8.1.0.157", maven方式: <dependency> <groupId>com.dameng</groupId> <artifactId>Dm8JdbcDriver18</artifac

_@Eva@_的博客 2091

AI安全护栏评测:TrustedExecBench如何量化评估大模型防护能力

在人工智能和机器学习领域,模型安全对齐是确保AI系统可靠、可控的核心技术。其原理是通过设计安全机制(即“护栏”)来约束模型行为,防止生成有害、偏见或越界内容。这项技术的核心价值在于平衡AI能力与风险管控,是可信AI部署的基石。应用场景广泛覆盖内容审核、对话系统、代码生成等需要人机交互的领域。本文聚焦的TrustedExecBench项目,正是针对“护栏”性能量化评估这一痛点,提供了一个标准化、自动化的开源评测框架。该工具通过构建多维度的恶意测试套件,并引入基于模型的动态评判机制,能够系统性地检验大语言模型在

weixin_42525428的博客 378

Hadoop和Spark联系与区别

转自:https://blog.youkuaiyun.com/vaychen/article/details/83578527      博主讲解很形象,建议hadoop,spark学完后在看一遍 谈到大数据,相信大家对Hadoop和Apache Spark这两个名字并不陌生。但我们往往对它们的理解只是提留在字面上,并没有对它们进行深入的思考,下面不妨跟我一块看下它们究竟有什么异同。   解决问题的层面不...

qq_32445015的博客 492

YOLOv11改进 | 注意力篇 | YOLOv11引入24年最新的ELA注意力机制,并构建C2PSA_ELA

为了解决这些限制,本文介绍了一种高效的本地注意力(ELA)方法,实现了一个简单的结构,大幅度的性能改善。我们精心设计了ELA中的三个超参数,产生了四个不同的版本:ELA-T,ELAB,ELA-S和ELA-L,以满足不同视觉任务的具体要求,如图像分类,目标检测和语义分割。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~

tsg6698的博客 1286

2分钟读懂大数据框架Hadoop和Spark的异同

转自:https://www.cnblogs.com/reed/p/7730313.html 谈到大数据,相信大家对Hadoop和Apache Spark这两个名字并不陌生。但我们往往对它们的理解只是提留在字面上,并没有对它们进行深入的思考,下面不妨跟我一块看下它们究竟有什么异同。 解决问题的层面不一样 首先,Hadoop和Apache Spark两者都是大数据框架,但是各自存在的...

weixin_30379531的博客 81

皮肤病识别 - 使用DenseNet或EfficientNet模型在ISIC数据集上进行皮肤病识别任务

在本篇博客中,我们探讨了如何使用 DenseNet 和 EfficientNet 模型在 ISIC 数据集上进行皮肤病识别任务。我们加载了数据集,并进行了预处理。然后我们使用 Keras 构建了两个不同的模型,并训练和评估了它们。最后,我们使用训练好的模型对新的皮肤病图像进行了预测。

斌擎科技 1307

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

hadoop和spark的区别

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34249367的博客 85

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

大数据学习-基础篇

文章目录前言一、编程基础二、大数据核心框架三、离线数仓和实时数仓总结 前言 随着互联网的不断发展,大数据是互联网高速发展的产物。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。大数据学习这门技术也越来越重要,很多人都开启了大数据开发之旅,本文主要简单的介绍大数据开发学习的基础内容。 以下是本篇文章正文内容,主要介绍一下大数据开发学习的相关知识与学习路线,下面案例可供参考: 一、编程基础 入门大数

Oyk_SunshineBoy的博客 389

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

大数据学习 第一篇--基础知识

大数据入门 总结一下近期学习的大数据知识 学习之前没搞清楚的知识 传统的web应用(LAMP、JavaEE、NODE系等)与大数据什么关系? 之前一直以为大数据的东西就是来取代传统的Web应用的,其实并不是这样;即使是大数据的架构,应用层依然会是传统的web应用,但是会根据数据特点对数据存储(结构化数据依然会保存在传统的关系型数据库--如MySql,日志等非结构数据会保存在分布式文件系统-...

Hadoop环境搭建教程 571

大数据生态圈及重要组件

Spark:计算引擎,框架媒介,调用配置所处位置下的机器的硬件设施来实现调用配置。使用内存来存储数据,运算快,断电丢失。对应于Hadoop圈中的MapReduceHbase:分布式、面向列的数据库,存储和读取媒介,来源于BigTable(一个结构化数据的分布式存储系统),但HBase是一个非结构化数据存储的数据库。是Hadoop项目的子项目非结构化、面向列、稀疏Hadoop:分布式系统基础框架,管...

北落师门XY的博客 3474

spark相关原理介绍

pyspark(基础知识) PySpark SQL 相关知识介绍 大数据Spark和Hadoop以及区别(干货)

m0_37347812的博客 107

大数据导论

1.三类框架:批处理框架、流式处理框架、交互式处理框架。2.分而治之的思想:将数据处理拆分主要的为Map和 Reduce两步3.主要阶段:input、split、Map、Shuffle、Reduce、Final reduce4.调度机制、资源表示模型、可靠性、扩展性、支持的计算框架5.Spark拥有比Hadoop更快速地处理能力、易于使用、通用性强、可用性高6.1.flatmap:将一整段文字映射成一个字符串数据2.mapToPair:将Word映射成(word,1)

定期分享我的发现和想法,感谢你的陪伴和支持 5227
上一篇: 大数据框架基础MapReduce编程实例:单词计数
下一篇: Spark总体架构和运行流程
QYUooYUQ
博客等级 码龄7年 213粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值