温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spark的架构与运行逻辑

发布时间:2021-09-03 16:23:42 来源:亿速云 阅读:123 作者:chen 栏目:云计算

本篇内容主要讲解“Spark的架构与运行逻辑”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spark的架构与运行逻辑”吧!

一:Spark的架构。

    1.  Driver:运行Application的main()函数并且创建SparkContext。

    2.  Client:用户提交作业的客户端。

    3.  Worker:集群中任何可以运行 Application 代码的节点,运行一个或多个 Executor
                        进程。

    4.  Executor :运行在 Worker 的 Task 执行器, Executor 启动线程池运行 Task,并且
                           负责将数据存在内存或者磁盘上。每个 Application 都会申请各自的 Executor                             来处理任务。

    5.  SparkContext:整个应用的上下文,控制应用的生命周期。

    6.  RDD: Spark 的基本计算单元,一组 RDD 形成执行的有向无环图 RDD Graph。

    7.  DAG Scheduler:根据 Job 构建基于 Stage 的 DAG 工作流,并提交 Stage 给                                                           TaskScheduler。

    8.  TaskScheduler:将 Task 分发给 Executor 执行。

    9.  SparkEnv:线程级别的上下文,存储运行时的重要组件的引用。

二:运行逻辑。

    1.  Spark 作业提交流程。

        如下图,Client提交应用,Master找到一个Worker启动Driver,Driver向Master或者资源管理器申请资源,之后将应用转化为RDD有向无环图,再由DAGScheduler将RDD有向无环图转化为Stage的有向无环图提交给TaskScheduler,由TaskScheduler提交任务给Executor进行执行。任务执行的过程中其他组件在协同工作确保整个应用顺利执行。

        Spark的架构与运行逻辑

    2.  Spark 作业运行逻辑。

        如下图,在 Spark 应用中,整个执行流程在逻辑上运算之间会形成有向无环图。Action 算子触发之后会将所有累积的算子形成一个有向无环图,然后由调度器调度该图上的任务进行运算。 Spark 的调度方式与 MapReduce 有所不同。 Spark 根据 RDD 之间不同的依赖关系切分形成不同的阶段( Stage),一个阶段包含一系列函数进行流水线执行。图中的 A、 B、 C、 D、 E、 F,分别代表不同的 RDD, RDD 内的一个方框代表一个数据块。数据从 HDFS 输入 Spark,形成 RDD A 和 RDD C, RDD C 上执行 map 操作,
转换为 RDD D, RDD B 和 RDD E 进行 join 操作转换为 F,而在 B 到 F 的过程中又会
进行 Shuff le。最后 RDD F 通过函数 saveAsSequenceFile 输出保存到 HDFS 中。

    Spark的架构与运行逻辑

到此,相信大家对“Spark的架构与运行逻辑”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI