zoukankan      html  css  js  c++  java
  • Spark核心组件

    Spark核心组件

    1、RDD

    resilient distributed dataset, 弹性分布式数据集。逻辑上的组件,是spark的基本抽象,代表不可变,分区化的元素集合,可以进行并行操作。该类封装了RDD的基本操作,例如map、filter、persist等,除此以外,PairRDDFunctions封装了KV类型RDD的操作,例如groupByKey和join。对于spark的KV类型RDD直接隐式转换成PairRDDFunctions类,具备了byKey的操作。

    RDD轻量级集合,内部没有数据。内部,每个RDD具有5方面主要属性:

    1. 分区列表
    2. 用于计算每个切片的函数(算法)
    3. 到其他RDD的依赖列表
    4. (可选)对于KV类型的RDD有一个分区类
    5. (可选)计算每个切片的首选位置列表

    spark中所有的调度和执行都是基于这些方法,也允许每个RDD实现自己的计算方式。RDD的方法主要包含两种类型Transformations和action。返回rdd都是变换,不会导致job的执行,延迟计算,延迟到action方法的调用。

    1.1 transform

    • map
    • filter
    • mapValues
    • flatMap
    • reduceByKey
    • groupByKey
    • sortByKey

    2、SparkContext

    上下文创建时,在worker节点直接启动job的执行器进程(CoarseGrainedExecutorBackend),spark入口点,表示到spark集群的一个连接。创建该类时,同时创建task调度器和后台调度器,后台调度器还要决定默认并发度问题。

    3、DagScheduler

    高级调度层,面向stage进行调度,为每个job计算stage,寻找最优路径执行job。该调度器以taskset方式提交stage给下层调度器(TaskScheduler)。Spark以shuffle为边界,将众多的RDD划分成stage,窄依赖的RDD划分到一个stage中。shuffle依赖需要多个stage,DAG调度检测运行task的首选位置,该调度器将位置信息和状态传递给底层的task调度器。DAG调度器处理因shuffle output丢失导致故障,此时上一个stage需要重新提交。在阶段stage内,不是由shuffle output丢失导致的故障都由下层的task调度器处理。缓存跟踪,避免rdd重复计算。首选位置:首选那个节点来执行task。为了防止内存泄漏,job完成后清除数据结构。递归提交每个Stage,每个stage都是以Tasket方式提交任务集合给下层的TaskScheduler,因此Dag调度器需要计算每个stage的任务集合。提交的阶段通过分区列表映射成Task集合,ShuffleMapStage对应ShuffleTask,ResultStage对应
    ResultTask。

    4、TaskSchedulerImpl

    5、SchedulerBackend

    6、job

    activejob,提交给调度器的最顶层work单位,每个job可能需要多各stage的执行,并产生中间结果。

    7、stage

    stage是task的集合,数量同stage的最后的一个rdd的分区数相同。stage按照shuffle进行划分边界,存在前后依赖,上一阶段计算输出,下一个提取上一个的结果。主要有两种类型stage:

    1. ResultStage
      最后的阶段,执行action。在RDD的某些分区上应用函数来计算action的结果。
    2. ShuffleMapStage
      产生map的output,stage如果重用了rdd,可以跨job共享。该阶段是DAG图计算过程中的中间阶段,执行时保存输出文件供reduce任务抓取,该阶段可以单独提交,DagScheduler.submitMapStage();

    8、Task

  • 相关阅读:
    【IdentityServer4文档】- 使用密码保护 API
    【IdentityServer4文档】- 使用客户端凭据保护 API
    【IdentityServer4文档】- 启动和概览
    【IdentityServer4文档】- 术语&演示服务器和测试
    【IdentityServer4文档】- 支持和咨询选项
    【IdentityServer4文档】- 支持协议
    【IdentityServer4文档】- 打包和构建
    【IdentityServer4文档】- 贡献
    QLGame 2d Engine源码地址
    QLGame 2d Engine 搭建2d游戏原理
  • 原文地址:https://www.cnblogs.com/xupccc/p/9800349.html
Copyright © 2011-2022 走看看