zoukankan      html  css  js  c++  java
  • spark执行流程

    image-20211031210640552

    首先,用户编写好的 spark 应用程序之后,打包成 Jar 包,通过 spark-submit 进行提交。最终转交给 SparkSubmit.class,通过提交模式可以找到对应的客户端启动类。这个客户端类启动好了之后,执行一些参数解析,执行 Jar 包处理等相关准备动作之后,就发送请求(ApplicationRegistion)给对应的资源调度系统的节点 Master。Master 首先找到一个空闲节点,来启动一个 Driver(Master 发送消息 LauchDriver 给 Worker),启动 Driver (启动 Driver 之后,启动这个 Job 需要的 Executor),解析和执行用户编写的应用程序 main 方法。首先执行的是 SparkContext 的初始化。然后执行各种操作算子,构建 DAG,最后触发 Action 提交到 Job。

    1. 应用程序在 Driver 端执行
    2. Driver 中执行应用程序,首先初始化 SparkContext
    3. 初始化 SparkContext ,会初始化三大组件 DAGScheduler,TaskScheduler,SchedulerBackEnd
    4. 在初始化 ScheduleBackEnd 时,会初始化两个通信组件 ClientEndpoint 和 DriverEndpoint
      • ClientEndpoint 和 Master 打交道,负责任务提交和 Driver 状态汇报
      • DriverEndpoint 和 Worker 中的 Executor 打交道,负责任务派发和跟踪 Task 执行状态
    5. DriverEndpoint 会发送 LaunchTask 命令给 ExecutorBackEnd
    6. ExecutorBackEnd 接收到命令之后,会调用 launchTask 方法来启动任务,其实就是封装一个 TaskRunner 的线程对象,提交给 Executor 的线程池来执行
    7. 整个过程,Executor 都会维持与 Driver 的心跳,整个过程中,Driver 也会维持和 Master 的心跳
  • 相关阅读:
    pl/sql 编程!
    oracle中的常用函数、字符串函数、数值类型函数、日期函数,聚合函数。
    oracle 相关查询和非相关查询,oracle 去除重复数据,以及oracle的分页查询!
    初识 oracle!
    分页查询。
    利用ajax技术 实现用户注册。
    quartz CronExpression
    SQL 面试题
    什么是HTTP协议?常用的状态码有哪些?
    聚集索引与非聚集索引
  • 原文地址:https://www.cnblogs.com/starzy/p/15490914.html
Copyright © 2011-2022 走看看