• [Spark Core] Spark 核心组件



    0. 说明

       【Spark 核心组件示意图】

      


    1. RDD

      resilient distributed dataset , 弹性数据集
      轻量级的数据集合,逻辑上的集合。等价于 list
      没有携带数据。


    2. 依赖

      RDD 的依赖是 子 RDD 上的每个分区和父 RDD 分区数量上的对应关系
      Dependency
        |----ShuffleDependency (宽依赖)
        |----NarrowDependency (窄依赖:子 RDD 的每个分区依赖少量的父 RDD 分区)
          |-----One2OneDependency (一对一依赖)
          |-----RangeDependency(范围依赖)
          |-----PruneDependency(Prune 依赖)


    3. Stage(阶段)

      并行的 task 集合,同一 Stage 的所有任务有着相同的 Shuffle 依赖。

      阶段,一组RDD构成的链条。
      阶段的划分按照 Shuffle 标记来进行的。
      阶段类型有两种,ShuffleMapStage 和ResultStage。


      【ShuffleMapStage】
      该阶段任务的结果是下一个阶段任务的输入。需要跟踪每个分区所在的节点。

      任务执行期间的中间过程,保存task的输出数据供下一个 reduce 进行 fetch(抓取) 。

      该阶段可以单独提交。

      【 ResultStage】
      结果结果直接执行 RDD 的 action 操作。

      对一些分区应用计算函数(不一定需要在所有分区进行计算,比如说first())。

      最后一个阶段,执行task后的结果回传给driver


    4. Task

      task 是 Spark 执行单位,有两种类型。


      【ShuffelMapTask】
      在 ShuffleMapStage 由多个 ShuffleMapTask 组成。

      【ResultTask】
      ResultStage 由多个 ResultTask 组成,结果任务直接 task 后,将结果回传给 driver。

      driver:


    5.  job

      一个 action 就是一个 job


    6. Application

      一个应用可以包含多个 job


    7. Spark Context

      Spark 上下文是 Spark 程序的主入口点,表示到 Spark 集群的连接。可以创建 RDD 、累加器和广播变量。
      每个 JVM 只能有一个 active 的上下文,如果要创建新的上下文,必须将原来的上下文 stop。

      sc.textFile("");
      sc.parallelize(1 to 10);
      sc.makeRDD(1 to 10) ;          //通过parallelize实现。

    且将新火试新茶,诗酒趁年华。
  • 相关阅读:
    带着SMART原则重新出发
    带着SMART原则重新出发
    带着SMART原则重新出发
    带着SMART原则重新出发
    oracle 字符集
    oracle 字符集
    oracle 字符集
    oracle 字符集
    使用 tcpdump 抓包分析 TCP 三次握手、四次挥手与 TCP 状态转移
    ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
  • 原文地址:https://www.cnblogs.com/share23/p/9775167.html
Copyright © 2020-2023  润新知