1. Spark执行流程 知识补充:RDD的依赖关系 RDD的依赖关系分为两类:窄依赖(Narrow Dependency)和宽依赖(Shuffle Dependency) (1)窄依赖 窄依赖指的是父RDD中的一个分区最多只会被子RDD中的一个分区使用,意味着父RDD的一个分区内的数据是不能被分割的,子RDD的任务可以跟父RDD在同一个Executor一起执行,不需要经过Shuffle阶段去重组数据 窄依赖关系划分为两种:一对一依赖(OneToOneDependency)和范围依赖(Range…
引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单机的搭建,是因为作为个人学习的话,单机已足以,好吧,说实话是自己的电脑不行,使用虚拟机实在太卡了... 整个的集群搭建是在公司的测试服务搭建的,在搭建的时候遇到各种各样的坑,当然也收获颇多.在成功搭建大数据集群之后,零零散散的做了写笔记,然后重新将这些笔记整理了下来.于是就有了本篇博文. 其实我在搭…
RDD的依赖关系?   RDD和它依赖的parent RDD(s)的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency). 1)窄依赖指的是每一个parent RDD的Partition最多被子RDD的一个Partition使用,如图1所示. 2)宽依赖指的是多个子RDD的Partition会依赖同一个parent RDD的Partition,如图2所示. RDD作为数据结构,本质上是一个只读的分区记录集合.一个RDD可以包含多个分区,每…
一:RDD的依赖关系 1.在代码中观察 val data = Array(1, 2, 3, 4, 5) val distData = sc.parallelize(data) val resultRDD = distData.flatMap(v => (1 to v)).map(v => (v%2,1)).reduceByKey(_+_) resultRDD.toDebugString ## 查看RDD的依赖情况 2.解释 +—处表示,这是两个不同的stage 同时可以知道shuffledRD…
RDD的依赖关系 Rdd之间的依赖关系通过rdd中的getDependencies来进行表示, 在提交job后,会通过在DAGShuduler.submitStage-->getMissingParentStages privatedefgetMissingParentStages(stage: Stage): List[Stage] = { valmissing =newHashSet[Stage] valvisited =newHashSet[RDD[_]] defvisit(rdd: RD…
4.      RDD的依赖关系 6.1      RDD的依赖 RDD和它依赖的父RDD的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency). 6.2      窄依赖 窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用 总结:窄依赖我们形象的比喻为独生子女.窄依赖不会产生shuffle,比如说:flatMap/map/filter.... 6.3      宽依赖 宽依赖指的是多个子RDD的Pa…
文章目录 RDD的依赖关系 宽依赖 窄依赖 血统 RDD缓存 概述 缓存方式 RDD的依赖关系 RDD和它依赖的父RDD的关系有两种不同的类型,即窄依赖(narrow dependency) 和宽依赖(wide dependency). 宽依赖 宽依赖指的是子RDD中的数据来源于父RDD中的多个分区,其实就是产生了shuffle 窄依赖 窄依赖指的是子RDD中的数据来源于父RDD当中的一个分区,也即没有产生shuffle 血统 Lineage -- 根据rdd之间的依赖关系,将依赖关系给记录下来…
做大数据一定要有一个概念,需要处理的数据量非常大,少则几十T,多则上百P,全部放内存是不可能的,会OOM,必须要用迭代器一条一条处理. RDD叫做弹性分布式数据集,是早期Spark最核心的概念,是一种数据集合,它的核心就是迭代器. 创建方式 有两种创建RDD的方式: 在驱动程序中并行化现有集合 引用外部存储系统中的数据集 示例1:并行化集合 val rdd = sc.parallelize(Array(1,2,3,2,3,2,5)) 示例2:引用外部文件 val file = sc.textFi…
在学Spark之前,我们再回顾一下MapReduce的知识,这对我们理解Spark大有裨益. 在大数据的技术分层中,Spark和MapReduce同为计算层的批处理技术,但是Spark比MapReduce要快很多.看看官网是怎么说的Apache Spark. 简介 Apache Spark是一个统一的大规模数据处理分析引擎.它提供基于Java,Scala, Python和R语言的高级api,并且自动优化执行流程.它还支持丰富的高级工具,包括用于处理结构化数据的Spark SQL,用于机器学习的M…
引言 在上一篇中 大数据学习系列之五 ----- Hive整合HBase图文详解 : http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合HBase,并且测试成功了.在之前的大数据学习系列之一 ----- Hadoop环境搭建(单机) : http://www.panchengming.com/2017/11/26/pancm55/ 中成功的搭建了Hadoop的环境,本文主要讲的是Hadoop+Spark 的环境.虽然搭建的是单机版,…