美文网首页
RDD依赖关系(lineage)

RDD依赖关系(lineage)

作者: yayooo | 来源:发表于2019-08-06 20:19 被阅读0次

RDD只支持粗粒度转换,即在大量记录行执行的单个操作。将创建的RDD的一系列Lineage(血统)记录下来,以便恢复丢失的分区。RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区。
容错。

RDD和它依赖的父RDDs的关系有两种不同的类型

  • 窄依赖(narrow dependency) 一对一
  • 宽依赖(wide dependency) 一对多
    1)窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用,窄依赖我们形象的比喻为独生子女
    2)宽依赖指的是多个子RDD的Partition会依赖同一个父RDD的Partition,会引起shuffle,总结:宽依赖我们形象的比喻为超生
窄依赖 宽依赖

依赖关系查看

package com.atguigu

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Lineage {
  def main(args: Array[String]): Unit = {
    val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("Spark01_Partition")
    //构建spark上下文对象
    val sc = new SparkContext(conf)

    val rdd: RDD[Int] = sc.makeRDD(List(1,2,3,4,5,6))

    val rdd1: RDD[(Int, Int)] = rdd.map((_,1)).reduceByKey(_+_)

   rdd1.dependencies.foreach(println)

  }
}

org.apache.spark.ShuffleDependency@4d96250

ShuffleDependency宽依赖

相关文章

  • Spark Core2--LineAge

    Lineage RDD Lineage(又称为RDD运算图或RDD依赖关系图)是RDD所有父RDD的graph(图...

  • RDD依赖关系(lineage)

    RDD只支持粗粒度转换,即在大量记录行执行的单个操作。将创建的RDD的一系列Lineage(血统)记录下来,以便恢...

  • Spark-RDD的依赖关系

    Lineage RDD只支持粗粒度转换,即在大量记录上执行的单个操作。将创建RDD的一系列关系(称为Lineage...

  • RDD的依赖关系:宽依赖和窄依赖

    RDD之间的依赖关系是指RDD之间的上下来源关系,RDD2依赖RDD1,RDD4依赖于RDD2和RDD3,RDD7...

  • SparkCore之RDD依赖关系

    Lineage RDD只支持粗粒度转换,即在大量记录上执行的单个操作。将创建RDD的一系列Lineage(血统)记...

  • Spark之RDD强化学习

    一、RDD依赖关系 1、RDD的依赖关系分为窄依赖和宽依赖;2、窄依赖是说父RDD的每一个分区最多被一个子RDD的...

  • RDD 的宽依赖和窄依赖

    1. RDD 间的依赖关系 RDD和它依赖的父 RDD(s)的关系有两种不同的类型,即窄依赖(narrow dep...

  • RDD依赖关系

    Spark中RDD的高效与DAG图有着莫大的关系,在DAG调度中需要对计算过程划分stage,而划分依据就是RDD...

  • RDD依赖关系

    前言 RDD的五大特性 A list of partitions一组分区:多个分区,在RDD中用分区的概念。 A ...

  • RDD的依赖关系

    RDD的依赖关系 窄依赖 每个父RDD的一个Partition最多被子RDD的一个Partition所使用,例如m...

网友评论

      本文标题:RDD依赖关系(lineage)

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