大数据开发学习:Spark和HadoopMapReduce有什么区别?
⼤数据开发学习:Spark和HadoopMapReduce有什么区别?
很多⼈认为Spark 将代替 Hadoop MapReduce,成为未来⼤数据处理发展的⽅向,MapReduce和Spark之间存在哪些区别?Spark会取代Hadoop吗?⼤数据技术学习为什么要既要学习Hadoop⼜要学习Spark?今天加⽶⾕⼤数据就来说说这⼆者。
Hadoop MapReduce:
⼀种编程模型,是⾯向⼤数据并⾏处理的计算模型、框架和平台,⽤于⼤规模数据集(⼤于1TB)的并⾏运算。"Map(映射)"和"Reduce(归约)",是它们的主要思想,MapReduce采⽤"分⽽治之"的思想,简单地
说,MapReduce就是"任务的分解与结果的汇总"。
Spark:
专为⼤规模数据处理⽽设计的快速通⽤的计算引擎,是⼀种与Hadoop 相似的开源集计算环境,拥有Hadoop MapReduce所具有的优点,Spark是MapReduce的替代⽅案,⽽且兼容HDFS、Hive,可融⼊Hadoop的⽣态系统,以弥补MapReduce的不⾜。
Spark特点:速度快、容易上⼿开发、超强的通⽤性、集成Hadoop、极⾼的活跃度。
Spark与Hadoop MapReduce
Spark与Hadoop MapReduce在业界有两种说法:
⼀是 Spark 将代替 Hadoop MapReduce,成为未来⼤数据处理发展的⽅向;
⼆是 Spark 将会和 Hadoop 结合,形成更⼤的⽣态圈。
Spark是借鉴了mapreduce并在其基础上发展起来的,继承了其分布式计算的优点并改进了mapreduce明显的缺陷,但是⼆者也有不少的差异。
⼆者的⼀些区别:
1、Spark的速度⽐MapReduce快,Spark把运算的中间数据存放在内存,迭代计算效率更⾼;mapreduce的中间结果需要落地,需要保存到磁盘,⽐较影响性能;
2、spark容错性⾼,它通过弹性分布式数据集RDD来实现⾼效容错;mapreduce容错可能只能重新计算了,成本较⾼;
3、spark更加通⽤,spark提供了transformation和action这两⼤类的多个功能API,另外还有流式处理s
parkstreaming模块、图计算GraphX等;mapreduce只提供了map和reduce两种操作,流计算以及其他模块的⽀持⽐较缺乏,计算框架(API)⽐较局限;
4、spark框架和⽣态更为复杂,很多时候spark作业都需要根据不同业务场景的需要进⾏调优已达到性能要求;mapreduce框架及其⽣态相对较为简单,对性能的要求也相对较弱,但是运⾏较为稳定,适合长期后台运⾏;
5、Spark API⽅⾯- Scala: Scalable Language, 是进⾏并⾏计算的最好的语⾔. 与Java相⽐,极⼤的减少代码量(Hadoop框架的很多部分是⽤Java编写的)。
Spark 和 Hadoop MapReduce 的重点应⽤场合有所不同。
Spark会取代Hadoop吗?
Hadoop和Spark两者都是⼤数据框架,Hadoop实质上更多是⼀个分布式数据基础设施:它将巨⼤的数据集分派到⼀个
Hadoop和Spark两者都是⼤数据框架,Hadoop实质上更多是⼀个分布式数据基础设施:它将巨⼤的数据集分派到⼀个由普通计算机组成的集中的多个节点进⾏存储,意味着不需要购买和维护昂贵的服务器硬件,还会索引和跟踪这些数据,让⼤数据处理和分析效率达到前所未有的⾼度。加⽶⾕⼤数据
开发培训,6⽉零基础班预报名中,提前预报可领取免费独家学习资料+学费优惠!
Spark,则是那么⼀个专门⽤来对那些分布式存储的⼤数据进⾏处理的⼯具,它并不会进⾏分布式数据的存储。Spark的限制:内存。
看图:
Hadoop:分布式计算架构⿐祖
大数据要学什么所谓分布式计算过程就像蚂蚁搬家⼀样,将⼀个⼤型任务分割成很多部分,每⼀台电脑相当于⼀个⼩蚂蚁将其中⼀部分搬⾛。Hadoop作为分布式系统的基础架构,其重要性不⾔⽽喻。
Hadoop的数据处理⼯作在硬盘层⾯,借助HDFS(分布式⽂件系统),可以将架构下每⼀台电脑中的硬盘资源聚集起来,不论是存储计算还是调⽤都可以视为⼀块硬盘使⽤,使⽤集管理和调度软件Yarn,利⽤Map/Reduce计算框架,就可以在这上⾯进⾏计算编程。从⽽⼤幅降低了整体计算平台的硬件投⼊成本。⽽这也是最基础的分布式计算架构。Spark:流数据处理
所谓流数据处理其实不难理解,⽐如看⽹上视频,都是下载⼀段看⼀段,然后快结束的时候⾃动下载下⼀段。由于Hadoop的计算过程放在硬盘,受制于硬件条件限制,数据的吞吐和处理速度明显不如使⽤内存来的快。于是Spark登上舞台,与Hadoop相⽐,Spark真正的优势在于速度。
很多⼈在谈到Spark代替Hadoop的时候,其实很⼤程度上指的是代替MapReduce。
⼤数据技术学习为什么要既要学习Hadoop⼜要学习Spark?
尽管Hadoop数据处理的速度和难易度都远⽐不过Spark,但是由于硬盘断电后数据可以长期保存,因此在处理需要长期存储的数据时还是需要借助Hadoop。 Hadoop⾸先有分块存储得⽂件系统HDFS,之后延伸出权限、安全等功能,作为分布式⽂件系统越来越完善,Hbase和Spark等都会利⽤HDFS。
不过Hadoop由于具有⾮常好的兼容性,因此很容易同Spark进⾏结合,从⽽满⾜公司的不同需求。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。