在大数据领域,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