Spark概述和特点

本文对比了Spark与MR在编程、进程管理、资源申请、IO、排序、迭代处理和适用场景等方面的差异,强调Spark的高速、易用和通用特性。Spark作为一个统一分析引擎,提供SQL、流处理、机器学习和图计算等功能,并可在多种平台上运行,支持多种数据源。
摘要由CSDN通过智能技术生成

1、产生背景,MR和Spark对比

1)编程
  MR有局限性,编程繁杂,只提供了map和reduce方法,而spark是High-Level,提供了80多个算子
2)进程级别
  MR中maptask和reducetask有很多的进程,进程启动和销毁要花大量的时间。
   spark的task基于线程,在每一个executor中都有一个线程池。
3)资源申请
  在MR中,每个job的maptask和reducetask都需要单独的申请资源 ,资源反复申请很耗时。
  在spark中,无论一个应用程序有多少个job,只需要申请一次资源即可。
  当然,spark资源的释放要所有job执行完才可以。
4)IO
  MR基于磁盘和有限的内存,Spark基于内存。所以这就造成了IO上的差异。
   MR的I/O频繁,比如Mapper和Reducer读取、溢写、merge、结果输出、shuffle、combiner
   spark的I/O较少,数据读取、结果输出,可能存在的shuffle及持久化
  spark是基于pipeline进行数据的处理的,一个stage内的一个task一次处理一条数据,处理完保存在内存中,然后处理下一条
5)排序
  MR的执行流程中会进行排序,有些业务是不需要排序的
  在spark中开启bypass机制可以避免排序
6)迭代处理
  MR的迭代处理基于磁盘,每个job完成数据落盘,下一个job磁盘读取文件接着处理,且job间的衔接是需要程序员介入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值