博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

Hadoop MR 和 Spark 的相同点和不同点?

Hadoop 底层使用 MapReduce 计算架构,只有 map reduce 两种操作,表达能力比较欠缺,而且在 MR 过程中会重复的读写 hdfs,造成大量的磁盘 io 读写操作,所以适合高时延环境下批处理计算的应用;

Spark 是基于内存的分布式计算架构,提供更加丰富的数据集操作类型,主要分成转化操作和行动操作,包括 mapreducefilterflatmapgroupbykeyreducebykeyunion join 等,数据分析更加快速,所以适合低时延环境下计算的应用;


spark hadoop 最大的区别在于迭代式计算模型。基于 mapreduce 框架的 Hadoop 主要分为 map reduce 两个阶段,两个阶段完了就结束了,所以在一个 job 里面能做的处理很有限;

spark 计算模型是基于内存的迭代式计算模型,可以分为 n 个阶段,根据用户编写的RDD 算子和程序,在处理完一个阶段后可以继续往下处理很多个阶段,而不只是两个阶段。

所以 spark 相较于 mapreduce,计算模型更加灵活,可以提供更强大的功能。


但是 spark 也有劣势,由于 spark 基于内存进行计算,虽然开发容易,但是真正面对大数据的时候,在没有进行调优的轻局昂下,可能会出现各种各样的问题,比如 OOM 内存溢出等情况,导致 spark 程序可能无法运行起来,而mapreduce 虽然运行缓慢,但是至少可以慢慢运行完。

posted @ 2022-05-31 16:48  CHANG_09  阅读(177)  评论(0编辑  收藏  举报