• Hadoop 与 Spark 对比


    Hadoop进行海量数据分析,MR频繁落地,IO操作,计算时间就拉长。由于这种设计影响,计算过程中不能进行迭代计算。造成网络节点数据传输。

    Spark从理念上就开始改变。应用scala特点解决上面的核心问题,提升处理速度。Spark基于内存来实现,内存访问效率比磁盘访问效率高非常多。Spark不能完全基于内存,(所有要加工的数据都放入内存),部分数据也需要落地。一部分数据放在内存中,进行计算,计算中间结果有些不落地,直接放在内存,以val静态常量实现,新的RDD方式来存在。可以实现迭代式计算。

    Spark比Hadoop性能,如果基于内存高100倍,如果基于磁盘高10倍。

    Spark成也内存,败也内存

    Spark基于内存,所以性能自然提高,和Hadoop相比,提高100倍。Spark磁盘方式,比Hadoop快10倍。

    Spark对内存要求过多,需要大量内存,内存相比磁盘贵,企业采购压力。硬件要比hadoop贵很多。

    Spark基于内存,很容易内存溢出。要么增加硬件来解决。增加cache/persist,增加检查点。把内存中的内容部分放入到磁盘中。性能稍打折扣。

    Spark设计非常优秀,基于内存,随着硬件、内存越来越快,越来越廉价。最终Spark会超越Hadoop。Hadoop3.0引入把部分中间结果数据不落地,直接放在内存中。Hive新版提升29倍。

    在实际中使用情况:

    Hadoop使用比较多,和Yarn整合比较多。

    Spark很多公司已经开始采用,逐步替代掉Hadoop作业,MR/hive被替代掉

    在企业中Yarn集群中既有老的Hadoop作业,也有新的Spark作业。

    Hadoop海量数据的离线分析

    Spark海量数据的实时分析

    Hadoop的问题

    1)  MR过程,Map过程做完要把中间结果数据落地,Reduce要继续加工数据,把中间结果数据读出,继续计算。这个过程中频繁IO操作。导致Hadoop处理速度严重受影响。

    2)  分布式环境,网络传输,导致Hadoop处理速度严重受影响。

    3)  MR过程非迭代运行,导致Hadoop处理速度严重受影响。

    这个3条能否改善?

    1)  Hadoop设计非常谨慎,因为当时历史条件(在486稳定运行+网络拨号512k)随着社会发展,硬件日新月异(电脑+网络)Spark设计基于内存。中间过程不落地,后续需要继续使用中间结果,直接拿。性能提升100倍

    2)  网络自身硬件速度得到飞速提升,spark直接依赖这样稳定网络环境

    3)  整个处理过程是迭代运行。利用内存中中间结果,使用高级函数方式(函数式编程)实现了内存中迭代计算。

    Spark比Hadoop快的原因:

    1)  基于内存,中间结果不落地,val

    2)  迭代式运行

    Hadoop生态圈(MR、hive、HDFS、hbase、yarn)

    Spark生态圈(SparkSQL、HDFS、Tachyon内存列、yarn/mesos)

    超越:SparkSQL替代掉MR和hive

    依赖:HDFS和yarn

    Spark是Hadoop升级,互相补充。部分替代。Hadoop主要应用于离线处理,Spark相对实时处理(秒级别),Storm真正实时(亚秒级别)

  • 相关阅读:
    [网络流24题]骑士共存问题
    [网络流24题]魔术球问题
    [网络流24题]飞行员配对方案问题
    bzoj2741【FOTILE模拟赛】L(可持久化trie树+分块)
    bzoj4103[Thu Summer Camp 2015]异或运算(可持久化trie树)
    bzoj[3881]Divljak(dfs序+树状数组+fail树)
    bzoj1444 有趣的游戏(AC自动机+矩阵乘法)
    bzoj1195 最短母串
    bzoj2938 病毒
    poj 3134 Power Calculus (IDA*)
  • 原文地址:https://www.cnblogs.com/tieandxiao/p/8870259.html
Copyright © 2020-2023  润新知