《Spark Streaming实时流式大数据处理实战》 ——3.5 从RDD看集群调度
【摘要】 本节书摘来自华章计算机《Spark Streaming实时流式大数据处理实战》 —— 书中第3章,第3.5节,作者是肖力涛 。
3.5 从RDD看集群调度
在第2章中,通过图2.4从宏观角度列出了一个Spark程序从提交后在整个集群中的调度过程,并且也实际操作了一个Spark应用程序在集群中运行。而在前几节中介绍了Spark编程模型的细节,下面我们从RDD的角度对这个过程进行更详细的解析,使读者从内部原理上有一个更深刻的认识。
(1)通过Maven或者SBT等,将我们的应用及其依赖的jar包完整地打包,利用spark-submit命令将jar包提交到Spark中
(2)提交程序的这个Spark节点会作为Driver节点,并从Cluster Manager中获取资源。
(3)程序会在Worker节点中获得Executor,用来执行我们的任务。
(4)在Spark程序中每次RDD的Action变换会产生一个新的Job,每个Job包含多个Task。
(5)RDD在进行Transformation时,会产生新的stage。
(6)Task会被送往各个Executor运行。
(7)最终的计算结果会回到Driver节点进行汇总并输出(如reduceByKey)。
针对这个过程,我们可以从微观和宏观两个角度把控,将RDD的操作依赖关系,以及Task在集群间的分配情况综合起来看,如图3.7所示。
图3.7 从RDD看集群调度
图3.7中涉及的Action、Stage及Executor等概念,在第2.2节中已详细介绍,这里不再赘述。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)