为了账号安全,请及时绑定邮箱和手机立即绑定

比较通俗易懂的介绍一下spark是如何并行计算的

标签:
大数据

前几天搞清楚了spark是如何并行计算的,今天才想起来要记录一下,为什么突然搞清楚了?因为在此之前我才彻彻底底清楚了spark中RDD的前世今生,因为之前对RDD的概念模糊,所以导致对其余相关知识也是一知半解。

这是我上一篇结合hdfs对RDD的一个讲解(如果不明白,建议先看):对spark中RDD的partition通俗易懂的介绍

wordCount示意图

上图乃是一个非常传统的wordCount示意图,在这个程序中,Driver会把该application切分为多个job,因为每执行到一个action操作就会创建一个job,所以该程序只会有一个job,至于什么是action操作,道友网上找找就好,介绍这个东西的比比皆是。

随后,我们会有一个叫做DAGScheduler调度器的东西将上述的job切分为多个stage,从上图不难看出,stage的切分是通过宽依赖来切分的。

再随后,我们上述的每个stage下就会创建个TaskSet,这时,我们又有一个叫TaskScheduler的调度器将我们TaskSet中的每个task分配到各个worker上去执行,至于怎么分配,我上面的文章链接也说过。待执行完毕,返回Driver去汇总或存储。

可能有人还是对job,stage,task三者的关系不是很清楚,那么我们看下图。

层次划分关系)

上述应该讲的很明确了,唯一没有说到的就是这个stage下的任务是如何划分的,stage下的每一个task实则对应操作RDD内的一个partition。所以说,浏览此文章之前应该先看一遍上方链接文章。

(如果对您有所帮助话,那就点个赞吧,嘻嘻~~)



作者:飞叔Brother
链接:https://www.jianshu.com/p/49b340bcd6a5
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消