MR、Spark浅析

本文分析了Spark与MapReduce的执行流程,Spark通过内存计算和DAG提升速度,提供良好容错性和易用性,支持多样化运行模式及丰富计算需求;而MapReduce基于磁盘,虽计算速度较慢,但资源控制更精细,两者各有优势。
摘要由CSDN通过智能技术生成

一、两者执行流程:
1.spark执行流程:
1.driver跟master建立连接并申请资源
2.Master进行资源调度
3.Master跟worker进行rpc通信,worker启动Executer
4.启动Executor
5.Executor跟driver进行通信
6.Rdd触发action后,根据rdd从后往前推断依赖关系,遇到shuffle递归切分stage,直到某个rdd没有父rdd
7.DAGSchedule切分完stage后,先提交前面的stage,执行完成在提交后面的stage,stage会产生task,一个stage会产生业务逻辑相同的task,然后将以taskset的形式传递给taskschedule,taskschedule将task序列化,根据资源情况发送给executor
8.发送task给executor
9.Executor接收task后,先将task反序列化,然后将task用一个实现了runnal接口的实现类包装,最后将该包装类丢入线程池执行,调用task的计算逻辑

2.Mapreduce
Map阶段:

1.读取输入文件的内容,并解析成键值对(<key, value>)的形式,输入文件中的每一行被解析成一个<key, value>对,每个<key, value>对调用一次map()函数。
2.用户写map()函数,对输入的<key,value>对进行处理,并输出新的<key,value>对。
3.对得到的<key,value>进行分区操作。
4.不同分区的数据,按照key值进行排序和分组࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值