在大数据领域,hadoop和spark目前都占有举足轻重的地位,当然hadoop是大数据处理组件的开朝元老,Spark则是后起之秀,更有把前浪拍在沙滩上的趋势。

当然两者的对比,实际上是MapReduce和Spark运算模型的对比。

两者采用了完全不同的运算模型,

MapReduce

采用的maptask并发+reduceTask并发的模型

map阶段做局部简单的数据处理,经过shuffle后用reduce做数据的聚合、关联、叠加的操作

spark

1. 采用的是RDD数据模型,利用RDD之间的转换做数据处理

2. RDD每次转换都会生成新的RDD,形成流水线一样的前后依赖关系

3. 整个数据处理在内存中进行,极大的提升了处理速度

比较

由于运算模型的不同,spark的运算速度要比MapReduce快很多,基于内存要快100倍,基于硬碟要快10倍以上

但是Spark本身不具备hadoop的hdfs这样的分散式文件系统,Spark处理的很多数据仍是hdfs上的数据

而且Spark在很多情况下都运行在Hadoop的资源管理系统Yarn上

所以在很大程度上还是依赖Hadoop的

从另一个方面,Spark也在慢慢取代Hadoop,

hive on Spark:取代MapReduce作为hive的计算引擎,大大提高了hive的效率,更加导致MapReduce的使用率减少

综合来看两者更多的是相互结合,相互促进,技术的革新也是无法避免的

上述就是对Hadoop和Spark的一点拙见,欢迎大家进行评论指教,也麻烦大家关注、点赞

学习使人充实,祝大家出任CTO、迎娶白富美!!!O(∩_∩)O


相较于Hadoop来说,spark技术在架构上分析:

spark计算过程在内存中执行并在内存中存储,直到用户保存为止。除此之外,Spark处理工作的方式基本与Hadoop类似。

在性能上来说:

Spark在内存中运行速度比Hadoop快100倍,在磁碟上运行速度快10倍。

在应用成本上来说:

设置Spark集群可能会更加昂贵,还有就是由于Spark是较新的系统,因此它的专家更为稀少,成本更高。

对于以后的应用发展来说:

Hadoop主要是用来处理数据,而spark主要是用来计算数据,对人工智慧的开发更有优势。

其实无论是那个技术,精通是很重要的!

以上只是自己的一点见解,有更多见解的欢迎一起交流学习!


推荐阅读:
相关文章