spark和hadoop的区别

author author     2023-05-03     470

关键词:

spark和hadoop的区别:诞生的先后顺序、计算不同、平台不同。
诞生的先后顺序,hadoop属于第一代开源大数据处理平台,而spark属于第二代。属于下一代的spark肯定在综合评价上要优于第一代的hadoop。
计算不同spark和hadoop在分布式计算的底层思路上,其实是极为相似的,即mapreduce分布式运算模型:将运算分成两个阶段,阶段1-map,负责从上游拉取数据后各自运算,然后将运算结果shuffle给下游的reduce,reduce再各自对通过shuffle读取来的数据进行聚合运算spark和hadoop在分布式计算的具体实现上,又有区别;hadoop中的mapreduce运算框架,一个运算job,进行一次map-reduce的过程;而spark的一个job中,可以将多个map-reduce过程级联进行。
平台不同spark和hadoop区别是,spark是一个运算平台,而hadoop是一个复合平台(包含运算引擎,还包含分布式文件存储系统,还包含分布式运算的资源调度系统),所以,spark跟hadoop来比较的话,主要是比运算这一块大数据技术发展到目前这个阶段,hadoop主要是它的运算部分日渐式微,而spark目前如日中天,相关技术需求量大,offer好拿。
参考技术A

直接比较Hadoop和Spark有难度,因为它们处理的许多任务都一样,但是在一些方面又并不相互重叠。

比如说,Spark没有文件管理功能,因而必须依赖Hadoop分布式文件系统(HDFS)或另外某种解决方案。

Hadoop框架的主要模块包括如下:

    Hadoop Common

    Hadoop分布式文件系统(HDFS)

    Hadoop YARN

    Hadoop MapReduce

    虽然上述四个模块构成了Hadoop的核心,不过还有其他几个模块。这些模块包括:Ambari、Avro、Cassandra、Hive、 Pig、Oozie、Flume和Sqoop,它们进一步增强和扩展了Hadoop的功能。

    Spark确实速度很快(最多比Hadoop MapReduce快100倍)。Spark还可以执行批量处理,然而它真正擅长的是处理流工作负载、交互式查询和机器学习。

    相比MapReduce基于磁盘的批量处理引擎,Spark赖以成名之处是其数据实时处理功能。Spark与Hadoop及其模块兼容。实际上,在Hadoop的项目页面上,Spark就被列为是一个模块。

    Spark有自己的页面,因为虽然它可以通过YARN(另一种资源协调者)在Hadoop集群中运行,但是它也有一种独立模式。它可以作为 Hadoop模块来运行,也可以作为独立解决方案来运行。

    MapReduce和Spark的主要区别在于,MapReduce使用持久存储,而Spark使用弹性分布式数据集(RDDS)。

    性能

    Spark之所以如此快速,原因在于它在内存中处理一切数据。没错,它还可以使用磁盘来处理未全部装入到内存中的数据。

    Spark的内存处理为来自多个来源的数据提供了近乎实时分析的功能:营销活动、机器学习、物联网传感器、日志监控、安全分析和社交媒体网站。另 外,MapReduce使用批量处理,其实从来就不是为惊人的速度设计的。它的初衷是不断收集来自网站的信息,不需要这些数据具有实时性或近乎实时性。

    易用性

    支持Scala(原生语言)、Java、Python和Spark SQL。Spark SQL非常类似于SQL 92,所以几乎不需要经历一番学习,马上可以上手。

    Spark还有一种交互模式,那样开发人员和用户都可以获得查询和其他操作的即时反馈。MapReduce没有交互模式,不过有了Hive和Pig等附加模块,采用者使用MapReduce来得容易一点。

    成本

    “Spark已证明在数据多达PB的情况下也轻松自如。它被用于在数量只有十分之一的机器上,对100TB数据进行排序的速度比Hadoop MapReduce快3倍。”这一成绩让Spark成为2014年Daytona GraySort基准。

    兼容性

    MapReduce和Spark相互兼容;MapReduce通过JDBC和ODC兼容诸多数据源、文件格式和商业智能工具,Spark具有与MapReduce同样的兼容性。

    数据处理

    MapReduce是一种批量处理引擎。MapReduce以顺序步骤来操作,先从集群读取数据,然后对数据执行操作,将结果写回到集群,从集群读 取更新后的数据,执行下一个数据操作,将那些结果写回到结果,依次类推。Spark执行类似的操作,不过是在内存中一步执行。它从集群读取数据后,对数据 执行操作,然后写回到集群。

    Spark还包括自己的图形计算库GraphX。GraphX让用户可以查看与图形和集合同样的数据。用户还可以使用弹性分布式数据集(RDD),改变和联合图形,容错部分作了讨论。

    容错

    至于容错,MapReduce和Spark从两个不同的方向来解决问题。MapReduce使用TaskTracker节点,它为 JobTracker节点提供了心跳(heartbeat)。如果没有心跳,那么JobTracker节点重新调度所有将执行的操作和正在进行的操作,交 给另一个TaskTracker节点。这种方法在提供容错性方面很有效,可是会大大延长某些操作(即便只有一个故障)的完成时间。

    Spark使用弹性分布式数据集(RDD),它们是容错集合,里面的数据元素可执行并行操作。RDD可以引用外部存储系统中的数据集,比如共享式文件系统、HDFS、HBase,或者提供Hadoop InputFormat的任何数据源。Spark可以用Hadoop支持的任何存储源创建RDD,包括本地文件系统,或前面所列的其中一种文件系统。

    RDD拥有五个主要属性:

    分区列表

    计算每个分片的函数

    依赖其他RDD的项目列表

    面向键值RDD的分区程序(比如说RDD是散列分区),这是可选属性

    计算每个分片的首选位置的列表(比如HDFS文件的数据块位置),这是可选属性

    RDD可能具有持久性,以便将数据集缓存在内存中。这样一来,以后的操作大大加快,最多达10倍。Spark的缓存具有容错性,原因在于如果RDD的任何分区丢失,就会使用原始转换,自动重新计算。

    可扩展性

    按照定义,MapReduce和Spark都可以使用HDFS来扩展。那么,Hadoop集群能变得多大呢?

    据称雅虎有一套42000个节点组成的Hadoop集群,可以说扩展无极限。最大的已知Spark集群是8000个节点,不过随着大数据增多,预计集群规模也会随之变大,以便继续满足吞吐量方面的预期。

    安全

    Hadoop支持Kerberos身份验证,这管理起来有麻烦。然而,第三方厂商让企业组织能够充分利用活动目录Kerberos和LDAP用于身份验证。同样那些第三方厂商还为传输中数据和静态数据提供数据加密。

    Hadoop分布式文件系统支持访问控制列表(ACL)和传统的文件权限模式。Hadoop为任务提交中的用户控制提供了服务级授权(Service Level Authorization),这确保客户拥有正确的权限。

    Spark的安全性弱一点,目前只支持通过共享密钥(密码验证)的身份验证。Spark在安全方面带来的好处是,如果你在HDFS上运行Spark,它可以使用HDFS ACL和文件级权限。此外,Spark可以在YARN上运行,因而能够使用Kerberos身份验证。

    总结

    Spark与MapReduce是一种相互共生的关系。Hadoop提供了Spark所没有的功能特性,比如分布式文件系统,而Spark 为需要它的那些数据集提供了实时内存处理。完美的大数据场景正是设计人员当初预想的那样:让Hadoop和Spark在同一个团队里面协同运行。

本回答被提问者采纳
参考技术B 回答

Spark的中间数据放到内存中,对于迭代运算效率更高。Spark更适合于迭代运算比较多的ML和DM运算。因为在Spark里面,有RDD的抽象概念。Spark比Hadoop更通用Spark提供的数据集操作类型有很多种,不像Hadoop只提供了Map和Reduce两种操作。比如map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues, sort,partionBy等多种操作类型,Spark把这些操作称为Transformations。同时还提供Count, collect, reduce, lookup, save等多种actions操作。

麻烦给个赞 亲

谢谢

[微笑]

参考技术C Spark已经取代Hadoop成为最活跃的开源大数据项目,但是,在选择大数据框架时,企业不能因此就厚此薄彼
近日,著名大数据专家Bernard Marr在一篇文章中分析了Spark和 Hadoop 的异同
Hadoop和Spark均是大数据框架,都提供了一些执行常见大数据任务的工具,但确切地说,它们所执行的任务并不相同,彼此也并不排斥
虽然在特定的情况下,Spark据称要比Hadoop快100倍,但它本身没有一个分布式存储系统
而分布式存储是如今许多大数据项目的基础,它可以将 PB 级的数据集存储在几乎无限数量的普通计算机的硬盘上,并提供了良好的可扩展性,只需要随着数据集的增大增加硬盘
因此,Spark需要一个第三方的分布式存储,也正是因为这个原因,许多大数据项目都将Spark安装在Hadoop之上,这样,Spark的高级分析应用程序就可以使用存储在HDFS中的数据了
与Hadoop相比,Spark真正的优势在于速度,Spark的大部分操作都是在内存中,而Hadoop的MapReduce系统会在每次操作之后将所有数据写回到物理存储介质上,这是为了确保在出现问题时能够完全恢复,但Spark的弹性分布式数据存储也能实现这一点
另外,在高级数据处理(如实时流处理、机器学习)方面,Spark的功能要胜过Hadoop
在Bernard看来,这一点连同其速度优势是Spark越来越受欢迎的真正原因
实时处理意味着可以在数据捕获的瞬间将其提交给分析型应用程序,并立即获得反馈
在各种各样的大数据应用程序中,这种处理的用途越来越多,比如,零售商使用的推荐引擎、制造业中的工业机械性能监控
Spark平台的速度和流数据处理能力也非常适合机器学习算法,这类算法可以自我学习和改进,直到找到问题的理想解决方案
这种技术是最先进制造系统(如预测零件何时损坏)和无人驾驶汽车的核心
Spark有自己的机器学习库MLib,而Hadoop系统则需要借助第三方机器学习库,如Apache Mahout
实际上,虽然Spark和Hadoop存在一些功能上的重叠,但它们都不是商业产品,并不存在真正的竞争关系,而通过为这类免费系统提供技术支持赢利的公司往往同时提供两种服务
例如,Cloudera 就既提供 Spark 服务也提供 Hadoop服务,并会根据客户的需要提供最合适的建议
Bernard认为,虽然Spark发展迅速,但它尚处于起步阶段,安全和技术支持基础设施方还不发达,在他看来,Spark在开源社区活跃度的上升,表明企业用户正在寻找已存储数据的创新用法
参考技术D Hadoop和Spark的联系和区别
计算数据存储位置
Hadoop:硬盘
Spark:内存
计算模型
Hadoop:单一
Spark:丰富
处理方式
Hadoop:非迭代
Spark:迭代
场景要求
Hadoop:离线批处理。(面对SQL交互式查询、实时处理及机器学习等需要和第三方框架结合。多种数据格式转换,导致消耗大量资源)
Spark:批处理、实时处理

hadoop和spark的区别

spark和hadoop的区别:诞生的先后顺序、计算不同、平台不同。诞生的先后顺序,hadoop属于第一代开源大数据处理平台,而spark属于第二代。属于下一代的spark肯定在综合评价上要优于第一代的hadoop。计算不同spark和hadoop在分布式计... 查看详情

spark和hadoop的区别

spark和hadoop的区别:诞生的先后顺序、计算不同、平台不同。诞生的先后顺序,hadoop属于第一代开源大数据处理平台,而spark属于第二代。属于下一代的spark肯定在综合评价上要优于第一代的hadoop。计算不同spark和hadoop在分布式计... 查看详情

BOINC 和 Hadoop/Spark/etc 之间的区别

】BOINC和Hadoop/Spark/etc之间的区别【英文标题】:DifferencebetweenBOINCandHadoop/Spark/etc【发布时间】:2016-06-2516:29:14【问题描述】:BOINChttps://en.wikipedia.org/wiki/Berkeley_Open_Infrastructure_for_Network_Computing有什么区别对比通用Hadoop/Spark/等。大... 查看详情

hadoop和spark的区别介绍

学习hadoop已经有很长一段时间了,好像是二三月份的时候朋友给了一个国产Hadoop发行版下载地址,因为还是在学习阶段就下载了一个三节点的学习版玩一下。在研究、学习hadoop的朋友可以去找一下看看(发行版大快DKhadoop,去大... 查看详情

MongoDB & Spark:mongo-hadoop 和 mongo-spark 的区别

】MongoDB&Spark:mongo-hadoop和mongo-spark的区别【英文标题】:MongoDB&Spark:differencebetweenmongo-hadoopandmongo-spark【发布时间】:2018-07-1005:12:27【问题描述】:mongo-hadoop和mongo-spark连接器有什么区别,pymongo是否仅适用于mango-hadoop?pymongo... 查看详情

hadoop和spark的相同和区别

参考技术A解决问题的层面不一样首先,Hadoop和ApacheSpark两者都是大数据框架,但是各自存在的目的不尽相同。Hadoop实质上更多是一个分布式数据基础设施:它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行... 查看详情

hadoop,mapreduce,yarn和spark的区别与联系

  (1)Hadoop1.0  第一代Hadoop,由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中,HDFS由一个NameNode和多个DataNode组成,MapReduce由一个JobTracker和多个TaskTracker组成,对应Hadoop版本为Hadoop1.x和0.21.X,0.22.x。  (2)Hadoop2... 查看详情

npl程序设计语言,cnn,rnn,lstm,spark和hadoop的区别,云计算,kubeflow

目录NPL程序设计语言深度学习框架建模:CNN,RNN,LSTMspark和hadoop的区别云计算 查看详情

请描述下大数据三大平台hadoop,storm,spark的区别和应用场景

Hadoop当前大数据管理标准之一,运用在当前很多商业应用系统。可以轻松地集成结构化、半结构化甚至非结构化数据集还是离线处理,批处理比较多,用的比较广的是hiveStorm用于处理高速、大型数据流的分布式实时计算系统。为... 查看详情

hadoop和spark的都是并行计算,有啥相同和区别?

...侧重于内存+磁盘,内存占得比重比较大,这也是为什么Hadoop没spark速度快的根本原因,spark基于内存来做MR,而Hadoop侧重于落地到磁盘来做MR。参考技术A两者都是用mr模型来进行并行计算,hadoop的一个作业称为job,job里面分为maptas... 查看详情

hadoop,storm和spark的区别,比较

一、hadoop、Storm该选哪一个?为了区别hadoop和Storm,该部分将回答如下问题:1.hadoop、Storm各是什么运算2.Storm为什么被称之为流式计算系统3.hadoop适合什么场景,什么情况下使用hadoop4.什么是吞吐量首先整体认识:Hadoop是磁盘级计... 查看详情

hadoop,storm和spark的区别,比较

参考技术A一、hadoop、Storm该选哪一个?为了区别hadoop和Storm,该部分将回答如下问题:1.hadoop、Storm各是什么运算2.Storm为什么被称之为流式计算系统3.hadoop适合什么场景,什么情况下使用hadoop4.什么是吞吐量首先整体认识:Hadoop是... 查看详情

hadoop,storm和spark的区别,比较

参考技术A一、hadoop、Storm该选哪一个?为了区别hadoop和Storm,该部分将回答如下问题:1.hadoop、Storm各是什么运算2.Storm为什么被称之为流式计算系统3.hadoop适合什么场景,什么情况下使用hadoop4.什么是吞吐量首先整体认识:Hadoop是... 查看详情

hadoop,storm和spark的区别,比较

参考技术A一、hadoop、Storm该选哪一个?为了区别hadoop和Storm,该部分将回答如下问题:1.hadoop、Storm各是什么运算2.Storm为什么被称之为流式计算系统3.hadoop适合什么场景,什么情况下使用hadoop4.什么是吞吐量首先整体认识:Hadoop是... 查看详情

spark与hadoop区别与联系

参考技术Ahadoop是分布式系统基础架构,是个大的框架,spark是这个大的架构下的一个内存计算框架,负责计算,同样作为计算框架的还有mapreduce,适用范围不同,比如hbase负责列式存储,hdfs文件系统等等。另外spark是可以脱离hado... 查看详情

hadoop,spark,tez的区别与联系

文章目录1.0什么是Hadoop2.0什么是Spark3.0什么是Tez4.0三者之间的关系5.0Mr,Tez,Spark的对比1.0什么是Hadoop1)hadoop简介  Hadoop是一个由Apache基金会所开发的分布式系统基础架构。Hadoop实现了一个分布式文件系统HDFS。HDFS有... 查看详情

mapreduce split 和 spark 分区的区别

...时间】:2016-09-2302:53:46【问题描述】:我想问一下在使用Hadoop/MapReduce和Spark时数据分区有什么显着差异?他们都在HDFS(TextInputFormat)上工作,所以理论上应该是一样的。是否存在数据分区过程可能不同的情况?任何见解 查看详情

hadoop、hive、spark三者的区别和关系

参考技术AHadoop分为两大部分:HDFS、Mapreduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。由于编写MapReduce程序繁琐复杂,而sql语言比较简单,程序员就开发出了支持sql的hive。hive的出现方便了程序员和没... 查看详情