首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

走进大数据 MapReduce于spark的对比

数据处理方式不同

spark在运算中数据是在内存中进行存放的,不需要落地在磁盘中,所以它数据处理数据比较快,迭代的比较快;而MapReduce在运算中数据需要在中间落地到磁盘中,也就是Map阶段处理完成需要放到磁盘中,再由reduce阶段从磁盘中拉取数据再进行处理,处理完成后数据再次存放到磁盘中,因为频繁的IO操作,影响性能

通用性不同

spark通用性比较强,为我们提供了两大类多功能的API,也就是我们的Transformation和Action,除了,还有流处理,图计算等等,而MapReduce只有Map和reduce两种操作

容灾性不同

如果从容灾角度来看,都很不错MapReduce每次处理完都写入磁盘,所以天生就很有弹性的对系统错误进行处理;spark的数据对象存储在分布式集群上叫RDD,这些数据对象既可以在内存,也可以在磁盘,所以RDD也有灾难恢复功能,以及可以设置持久化

容错性不同

spark有基于血统的关系来进行重新计算,而MapReduce只能从头开始计算

操作难度不同

spark框架更加复杂,有RDD,血缘关系,DAG有向无环图等等,很多时候spark根据不同的业务场景进行调优;而MapReduce较为简单,对性能的要求也比较弱,更适合长期在后台运行

Shuffle 机制不同

Hadoop Shuffle:通过Map端处理的数据到Reduce端的中间的过程就是Shuffle

Spark Shuffle:在DAG调度过程中,stage阶段的划分是根据shuffle过程,也就是存在ShuffleDependency宽窄依赖的时候,需要进行shuffle,(这时候会将作业Job划分成多个stage;并且在划分stage的时候,构建shuffleDependency的时候进行shuffle注册,获取后续数据读取所需要的shuffleHandle),最终每一个Job提交后都会生成一个ResultStage和若干个ShuffleMapStage

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191010A0JEYE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券