spark学习---面试题

 1.Spark是怎么做内存计算的? DAG的作用? Stage阶段划分的作用?

1.Spark会产生DAG图
2.DAG图会基于分区和宽窄依赖关系划分阶段
3.一个阶段的内部都是窄依赖,窄依赖内,如果形成前后1:1的分区对应关系,就可以产生许多内存迭代计算的管道
4.这些内存迭代计算的管道,就是一个个具体的执行Task
5.一个Task是一个具体的线程,任务跑在一个线程内,就是走内存计算了.

2: Spark为什么比MapReduce快?
Spark的算子丰富, MapReduce算子匮乏(Map和Peduce),MapReduce这个编程模型,很难在一套MR中处理复杂的任务.很多的复杂任务,是需要写多个MapReduce进行串联.多个MR串联通过磁盘交互数据
Spark可以执行内存迭代,算子之间形成DAG基于依赖划分阶段后,在阶段内形成内存迭代管道.但是MapReduce的Map和Reduce之间交互依旧是通过硬盘来交互的.

3:spark运行层级关系梳理:

1.一个Spark环境可以运行多个Application

2.一个代码运行起来,会成为一个Application

3.Application内部可以有多个Job
4.每个Job由一个Action产生,并且每个Job有自己的DAG执行图

5.一个Job的DAG图会基于宽窄依赖划分成不同的阶段
6.不同阶段内基于分区数量,形成多个并行的内存迭代管道
7.每一个内存迭代管道形成一个Task(DAG调度器划分将Job内划分出具体的task任务,一个Job被划分出来的task在逻辑上称之为这个job的taskset)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值