美文网首页
Spark 执行基本原理(一切的核心)

Spark 执行基本原理(一切的核心)

作者: jason__huang | 来源:发表于2017-11-24 17:18 被阅读0次

    最近在负责Spark Streaming 结合 Spark Sql的相关项目,语言是Java,留下一些笔记,也供大家参考,如有错误,请指教!

    执行逻辑:

    jar -> Application -> Driver -> Worker -> Executor -> Task

    通过SparkSubmit提交job后,Client就开始构建spark context,即 application 的运行环境(使用本地的Client类的main函数来创建spark context并初始化它)

    yarn client提交任务,Driver在客户端本地运行;yarn cluster提交任务的时候,Driver是运行在集群上

    SparkContext连接到ClusterManager(Master),向资源管理器注册并申请运行Executor的资源(内核和内存)

    **Master**根据SparkContext提出的申请,根据worker的心跳报告,来决定到底在那个worker上启动executor

    Worker节点收到请求后会启动executor

    executor向SparkContext注册,这样driver就知道哪些executor运行该应用

    SparkContext将Application代码发送给executor(如果是standalone模式就是StandaloneExecutorBackend)

    同时SparkContext解析Application代码,构建DAG图,提交给DAGScheduler进行分解成stage,stage被发送到TaskScheduler

    TaskScheduler负责将Task分配到相应的worker上,最后提交给executor执行

    executor会建立Executor线程池,开始执行Task,并向SparkContext汇报,直到所有的task执行完成

    所有Task完成后,SparkContext向Master注销

    基本概念:

    Application =>Spark的应用程序,包含一个Driver program和若干Executor

    SparkContext => Spark应用程序的入口,负责调度各个运算资源,协调各个Worker Node上的Executor

    Driver Program => 运行Application的main()函数并且创建SparkContext

    Executor => 是为Application运行在Worker node上的一个进程,该进程负责运行Task,并且负责将数据存在内存或者磁盘上。每个Application都会申请各自的Executor来处理任务

    Cluster Manager =>在集群上获取资源的外部服务 (例如:Standalone、Mesos、Yarn)

    Worker Node => 集群中任何可以运行Application代码的节点,运行一个或多个Executor进程

    Task => 运行在Executor上的工作单元

    Job => SparkContext提交的具体Action操作,常和Action对应

    Stage => 每个Job会被拆分很多组task,每组任务被称为Stage,也称TaskSet

    RDD => 是Resilient distributed datasets的简称,中文为弹性分布式数据集;是Spark最核心的模块和类

    DAGScheduler => 根据Job构建基于Stage的DAG,并提交Stage给TaskScheduler

    TaskScheduler => 将Taskset提交给Worker node集群运行并返回结果

    Transformations => 是Spark API的一种类型,Transformation返回值还是一个RDD,所有的Transformation采用的都是懒策略,如果只是将Transformation提交是不会执行计算的

    Action => 是Spark API的一种类型,Action返回值不是一个RDD,而是一个scala集合;计算只有在Action被提交的时候计算才被触发。

    相关文章

      网友评论

          本文标题:Spark 执行基本原理(一切的核心)

          本文链接:https://www.haomeiwen.com/subject/ngsfbxtx.html