美文网首页
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被提交的时候计算才被触发。

相关文章

  • 10 Spark Streaming

    Spark Streaming 第一:Spark Streaming基本原理 Spark Streaming的核心...

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

    最近在负责Spark Streaming 结合 Spark Sql的相关项目,语言是Java,留下一些笔记,也供大...

  • Java/Scala开发wordcount

    Spark基本原理 分布式 基于内存 迭代计算 RDD及其特点 分区 弹性 容错性 RDD是Spark提供的核心抽...

  • Spark-内核概述

    Spark核心组件 Driver Spark Driver节点用于执行Spark应用中的main方法,负责代码的实...

  • spark四种运行模式

    1. spark的核心组件 1.1 Driver Spark 驱动器节点,用于执行 Spark 任务中的 mai...

  • Spark作业基本运行原理解析!

    1、基本原理 Spark作业的运行基本原理如下图所示: 我们使用spark-submit提交一个Spark作业之后...

  • spark序列化问题

    1.Spark的transformation操作为什么需要序列化? Spark是分布式执行引擎,其核心抽象是弹性分...

  • Spark内核解析

    Spark内核概述 Spark内核泛指Spark的核心运行机制,包括Spark核心组件的运行机制、Spark任务调...

  • Spark 内核概述

    Spark内核泛指Spark的核心运行机制,包括Spark核心组件的运行机制、Spark任务调度机制、Spark内...

  • scala基础语法

    Spark核心编程wordcount程序原理深度剖析图 Spark核心编程Spark架构原理

网友评论

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

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