火花与Hadoop MapReduce相比,有哪些优点你知道吗?

一是火花将代替Hadoop MapReduce,成为未来大数据处理发展的方向,

二是火花将会和Hadoop结合,形成更大的生态圈。其实火花和Hadoop MapReduce的重点应用场合有所不同。

相对于Hadoop MapReduce来说,有火花点“青出于蓝”的感觉,火花是在Hadoop MapReduce模型上发展起来的,在它的身上我们能明显看到MapReduce的影子,所有的火花并非从头创新,而是站在了巨人”MapReduce的肩膀上。千秋功罪,留于日后评说,我们暂且搁下争议,来看看相比Hadoop MapReduce,火花都有哪些优势。

火花与Hadoop MapReduce相比,有哪些优点你知道吗?“> <br/> </p> <p> </p> <p>大数据处理首先追求的是速度.Spark到底有多快?用官方的话说,“火花允许Hadoop集群中的应用程序在内存中以100倍的速度运行,即使在磁盘上运行也能快10倍”。可能有的读者看到这里会大为感,叹的确如此,在有迭代计算的领域,火花的计算速度远远超过MapReduce,并且迭代次数越多,引发的优势越明显。这是因为火花很好地利用了目前服务器内存越来越大这一优点,通过减少磁盘I/O来达到性能提升。它们将中间处理数据全部放到了内存中,仅在必要时才批量存入硬盘中。或许读者会问:如果应用程序特别大,内存能放下多少GB ?答曰:什么?GB ?目前IBM服务器内存已经扩展至几结核了。</p> <p> </p> <p>知道AMPLab的莱斯特为什么放弃MapReduce吗?因为他需要把很多精力放到Map和Reduce的编程模型上,极为不便。火花在简单的地图及减少操作之外,还支持SQL查询,流式查询及复杂查询,比如开箱即用的机器学习算法。同时,用户可以在同一个工作流中无缝地搭配这些能力,应用十分灵活。欢迎加入大数据学习交流分享群:658558542,,一起吹水交流学习(?点击即可加入群聊)</p> <p>引发核心部分的代码为63个Scala文件,非常的轻量级。并且允许Java, Scala, Python开发者在自己熟悉的语言环境下进行工作,通过建立在Java, Scala, Python, SQL(应对交互式查询)的标准API以方便各行各业使用,同时还包括大量开箱即用的机器学习库。它自80多带个高等级操作符,允许在Shell中进行交互式查询。即使是新手,也能轻松上手应用。</p> <p> </p> <p>火花可以独立运行,除了可以运行在当下的纱集群管理外,还可以读取已有的任何Hadoop数据。它可以运行在任何Hadoop数据源上,比如HBase, HDFS等。有了这个特性,让那些想从Hadoop应用迁移到火星上的用户方便了很多.Spark有兼容竞争对手的胸襟,何愁大事不成吗?</p> <p> </p> <p> MapReduce更加适合处理离线数据(当然,在纱之后,Hadoop也可以借助其他工具进行流式计算).Spark很好地支持实时的流计算,依赖火花流对数据进行实时处理.Spark流具备功能强大的API,允许用户快速开发流应用程序,而且不像其他的流解决方案,比如风暴,引发流无须额外的代码和配置,就可以做大量的恢复和交付工作。</p> <p> </p> <p>从火花的版本演化来看,足以说明这个平台旺盛的生命力及社区的活跃度。尤其自2013年以来,火花一度进入高速发展期,代码库提交与社区活跃度都有显著增长。以活跃度论,火花在所有的Apache基金会开源项目中位列前三,相较于其他大数据平台或框架而言,火花的代码库最为活跃。</p> <p>引发非常重视社区活动,组织也极为规范,会定期或不定期地举行与火花相关的会议。会议分为两种:一种是火花峰会,影响力极大,可谓全球引发顶尖技术人员的峰会,目前已于2013 - 2015年在旧金山的连续召开了三届峰会大会;另一种是引发社区不定期地在全球各地召开的小型Meetup活动.Spark聚会也会在我国的一些大城市定期召开,比如北京,深圳,西安等地,读者可以关注当地的微信公众号进行参与。欢迎加入大数据学习交流分享群:658558542,,一起吹水交流学习(?点击即可加入群聊)</p> <p> </p> <p>从大数据处理需求来看,大数据的业务大概可以分为以下三类:</p> <p>(1)复杂的批量数据处理,通常的时间跨度在数十分钟到数小时之间。</p> <p>(2)基于历史数据的交互式查询,通常的时间跨度在数十秒到数分钟之间。</p> <p>(3)基于实时数据流的数据处理,通常的时间跨度在数百毫秒到数秒之间。</p> <p>目前已有很多相对成熟的开源和商业软件来处理以上三种情景:第一种业务,可以利用MapReduce来进行批量数据处理;第二种业务,可以用黑斑羚来进行交互式查询;对于第三种流式数据处理,可以想到专业的流数据处理工具风暴。但是这里有一个很重要的问题:对于大多数互联网公司来说,一般会同时遇到以上三种情景,如果采用不同的处理技术来面对这三种情景,那么这三种情景的输入/输出数据无法无缝共享,它们之间可能需要进行格式转换,并且每个开源软件都需要一支开发和维护团队,从而提高了成本。另外一个不便之处就是,在同一个集群中对各个系统协调资源分配比较困难。欢迎加入大数据学习交流分享群:658558542,,一起吹水交流学习(?点击即可加入群聊)<h2 class=火花与Hadoop MapReduce相比,有哪些优点你知道吗?