0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

spark和hadoop的区别

PoisonApple 来源:网络整理 2018-02-12 14:41 次阅读

SPARK

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法

Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。

Hadoop

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

spark和hadoop的区别

spark和hadoop的区别

解决问题的层面不一样

首先,Hadoop和Apache Spark两者都是大数据框架,但是各自存在的目的不尽相同。Hadoop实质上更多是一个分布式数据基础设施: 它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,意味着您不需要购买和维护昂贵的服务器硬件。

同时,Hadoop还会索引和跟踪这些数据,让大数据处理和分析效率达到前所未有的高度。Spark,则是那么一个专门用来对那些分布式存储的大数据进行处理的工具,它并不会进行分布式数据的存储。

两者可合可分

Hadoop除了提供为大家所共识的HDFS分布式数据存储功能之外,还提供了叫做MapReduce的数据处理功能。所以这里我们完全可以抛开Spark,使用Hadoop自身的MapReduce来完成数据的处理。

相反,Spark也不是非要依附在Hadoop身上才能生存。但如上所述,毕竟它没有提供文件管理系统,所以,它必须和其他的分布式文件系统进行集成才能运作。这里我们可以选择Hadoop的HDFS,也可以选择其他的基于云的数据系统平台。但Spark默认来说还是被用在Hadoop上面的,毕竟,大家都认为它们的结合是最好的。

以下是从网上摘录的对MapReduce的最简洁明了的解析:

我们要数图书馆中的所有书。你数1号书架,我数2号书架。这就是“Map”。我们人越多,数书就更快。

现在我们到一起,把所有人的统计数加在一起。这就是“Reduce”。

spark和hadoop的区别

Spark数据处理速度秒杀MapReduce

Spark因为其处理数据的方式不一样,会比MapReduce快上很多。MapReduce是分步对数据进行处理的: ”从集群中读取数据,进行一次处理,将结果写到集群,从集群中读取更新后的数据,进行下一次的处理,将结果写到集群,等等…“ Booz Allen Hamilton的数据科学家Kirk Borne如此解析。

反观Spark,它会在内存中以接近“实时”的时间完成所有的数据分析:“从集群中读取数据,完成所有必须的分析处理,将结果写回集群,完成,” Born说道。Spark的批处理速度比MapReduce快近10倍,内存中的数据分析速度则快近100倍。

如果需要处理的数据和结果需求大部分情况下是静态的,且你也有耐心等待批处理的完成的话,MapReduce的处理方式也是完全可以接受的。

但如果你需要对流数据进行分析,比如那些来自于工厂的传感器收集回来的数据,又或者说你的应用是需要多重数据处理的,那么你也许更应该使用Spark进行处理。

大部分机器学习算法都是需要多重数据处理的。此外,通常会用到Spark的应用场景有以下方面:实时的市场活动,在线产品推荐网络安全分析,机器日记监控等。

灾难恢复

两者的灾难恢复方式迥异,但是都很不错。因为Hadoop将每次处理后的数据都写入到磁盘上,所以其天生就能很有弹性的对系统错误进行处理。

Spark的数据对象存储在分布于数据集群中的叫做弹性分布式数据集(RDD: Resilient Distributed Dataset)中。“这些数据对象既可以放在内存,也可以放在磁盘,所以RDD同样也可以提供完成的灾难恢复功能,”Borne指出。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据分析
    +关注

    关注

    2

    文章

    1445

    浏览量

    34048
  • Hadoop
    +关注

    关注

    1

    文章

    90

    浏览量

    15974
  • SPARK
    +关注

    关注

    1

    文章

    105

    浏览量

    19891
收藏 人收藏

    评论

    相关推荐

    大数据分析中SparkHadoop,Hive框架该用哪种开源分布式系统

    众所周知,大数据开发和分析、机器学习、数据挖掘中,都离不开各种开源分布式系统。最常见的就是 Hadoop、Hive、Spark这三个框架了。最近不少朋友有问到关于这些的问题: 大厂里还有在用
    的头像 发表于 09-17 13:17 4442次阅读

    如何将Hadoop部署在低廉的硬件上

    了 YARN,Yarn 是资源调度框架,能够细粒度的管理和调度任务,还能够支持其他的计算框架,比如 spark)为核心的 Hadoop 为用户提供了系统底层细节透明的分布式基础架构。
    的头像 发表于 09-27 09:40 1502次阅读

    山西嵌入式系统课程| SparkHadoop计算模型之SparkHadoop更...

    上次我们分享了SparkHadoop计算模型的内存问题,今天山西思软嵌入式学员为大家分享SparkHadoop计算模型的Spark
    发表于 11-17 16:44

    Hadoop的整体框架组成

    Hadoop是一个用Java编写的Apache开源框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集。Hadoop框架工作的应用程序在跨计算机集群提供分布式存储和计算的环境中工作
    发表于 05-11 16:00

    Spark入门及安装与配置

    1.下载spark-2.1.0-bin-hadoop2.7.tgz以下是Spark的官方下载地址:https://www.apache.org/dyn/closer.lua/spark
    发表于 07-31 16:22

    hadoop发行版本之间的区别

    hadoop发行版本之间的区别Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。
    发表于 09-18 16:30

    hadoop框架结构的说明介绍

    如下:(1)数据源与SQL引擎:DK.Hadoopspark、hive、sqoop、flume、kafka(2)数据采集:DK.hadoop(3)数据处理模块:DK.Hadoop
    发表于 10-15 15:59

    hadoopspark区别

    什么大的区别。我记得刚开始接触大数据这方面内容的时候,也就这个问题查阅了一些资料,在《FreeRCH大数据一体化开发框架》的这篇说明文档中有就Hadoopspark区别进行了简单的
    发表于 11-30 15:51

    大数据hadoop入门之hadoop家族产品详解

    Spark和Strom数据存在内存中 Pig/Hive(Hadoop编程):角色描述Pig是一种高级编程语言,在处理半结构化数据上拥有非常高的性能,可以帮助我们缩短开发周期。Hive是数据分析查询工具,尤其在
    发表于 12-26 15:02

    采用VMware和CentOS及HadoopSpark安装和配置

    5 基于 Mac 平台 VMware 虚拟机的 Spark 安装 (5)
    发表于 03-08 16:35

    SparkHadoop的对比

    Spark系列】:Spark为什么比Hadoop
    发表于 04-06 09:11

    如何使用Apache Spark 2.0

    数据集(Resilient Distributed Dataset,RDD)一直是Spark中的主要抽象。RDD API是在Scala集合框架之后建模的,因此间接提供了Hadoop Map / Reduce熟悉的编程
    发表于 09-28 19:00 0次下载
    如何使用Apache <b class='flag-5'>Spark</b> 2.0

    什么是Hadoop? SparkHadoop对比

    Hadoop在2006年开始成为雅虎项目,随后成为顶级的Apache开源项目。它是一种通用的分布式处理形式,具有多个组件: HDFS(分布式文件系统),它将文件以Hadoop本机格式存储,并在集群中并行化; YARN,协调应用程序运行时的调度程序.
    发表于 06-04 12:48 6828次阅读

    快速学习SparkHadoop的架构的方法

    SparkHadoop的架构区别是什么,什么是spark,什么是Hadoop,怎么样学习这些知识点?总的来说,
    的头像 发表于 07-18 09:42 2067次阅读

    未来大数据时代,Hadoop会被Spark取代?

    毫无疑问,为专家设计的产品一般都会停留在原来的轨道上,在其他方面不会有所涉及。但Spark在各个行业都存在一些有意义的分布,这可能要归功于各种市场上的大数据的泛滥。所以,虽然Spark可能有更广泛的应用,但Hadoop仍然支配着
    的头像 发表于 03-20 14:12 2512次阅读
    未来大数据时代,<b class='flag-5'>Hadoop</b>会被<b class='flag-5'>Spark</b>取代?