目录

----RDD简介

----RDD操作类别

----RDD分区

----宽依赖和窄依赖作用

----RDD分区划分器

----RDD到调度

RDD简介

RDD是弹性分布式数据集(Resilient Distributed Dataset),能在并行计算阶段进行高效的数据共享;RDD还提供了一种粗粒度接口,该接口会将相同的操作应用到多个数据集上并记录创建数据集的‘血统’,从而在不需要存储真正的数据的情况下,达到高效的容错性。

RDD操作类别

RDD操作大致可分为四类:创建操作、转换操作、控制操作、行动操作;在这些大类的基础上还能划为些细类,下面是大部分的RDD操作,以及其细类划分情况。  

RDD分区

分区的多少决定RDD的并行粒度;分区是逻辑概念,分区前后可能存储在同一内存;RDD分区之间存在依赖关系,分为宽依赖和窄依赖

宽依赖:多个子RDD分区依赖一个父RDD分区;如join,groupBy操作;

窄依赖:窄依赖:每个父RDD的分区都至多被被一个子RDD的分区使用;如map操作一对一关系

宽依赖和窄依赖作用

窄依赖允许在单个集群节点上流水线式执行,这个节点可以计算所有父级分区;而且,在窄依赖中,节点失败后的恢复更加高效

宽依赖的继承关系中,单个失败节点可能导致一个RDD的所有祖先RDD中的一些分区丢失,导致计算重新执行

RDD分区划分器

spark中RDD计算是以分区为单位的,而计算函数都是在迭代器中复合;分区计算一般使用mapPartitions等计算。

spark提供了两种默认的分区划分器,一种是HashPartitioner(哈希分区划分器),另一种是RangePartitioner(范围分区划分器)

RDD到调度

RDD转换操作属于lazy级别,会延迟执行,作业的提交是由行动操作触发。当执行RDD行动操作时触发作业的提交,然后会根据RDD之间的关系构建DAG(有向无环图),再提交给DAGScheduler进行解析;解析之后会得到调度阶段Stage,也就是taskSet;最后TashScheduler进一步解析得到task,task将会在Worker中Executor里面执行。

Spark RDD理解的更多相关文章

  1. Spark RDD理解-总结

    1.spark是什么 快速.通用.可扩展的分布式计算引擎. 2. 弹性分布式数据集RDD RDD(Resilient Distributed Dataset),是Spark中最基本的数据抽象结构,表示 ...

  2. [bigdata] Spark RDD整理

    1. RDD是什么RDD:Spark的核心概念是RDD (resilient distributed dataset),指的是一个只读的,可分区的弹性分布式数据集,这个数据集的全部或部分可以缓存在内存 ...

  3. Spark RDD aggregateByKey

    aggregateByKey 这个RDD有点繁琐,整理一下使用示例,供参考 直接上代码 import org.apache.spark.rdd.RDD import org.apache.spark. ...

  4. Spark RDD概念学习系列之RDD的转换(十)

    RDD的转换 Spark会根据用户提交的计算逻辑中的RDD的转换和动作来生成RDD之间的依赖关系,同时这个计算链也就生成了逻辑上的DAG.接下来以“Word Count”为例,详细描述这个DAG生成的 ...

  5. Spark RDD概念学习系列之RDD的checkpoint(九)

     RDD的检查点 首先,要清楚.为什么spark要引入检查点机制?引入RDD的检查点?  答:如果缓存丢失了,则需要重新计算.如果计算特别复杂或者计算耗时特别多,那么缓存丢失对于整个Job的影响是不容 ...

  6. Spark RDD概念学习系列之RDD的依赖关系(宽依赖和窄依赖)(三)

    RDD的依赖关系?   RDD和它依赖的parent RDD(s)的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency). 1)窄依赖指的是每 ...

  7. Spark RDD整理

    参考资料: Spark和RDD模型研究:http://itindex.net/detail/51871-spark-rdd-模型 理解Spark的核心RDD:http://www.infoq.com/ ...

  8. Spark RDD概念学习系列之rdd持久化、广播、累加器(十八)

    1.rdd持久化 2.广播 3.累加器 1.rdd持久化 通过spark-shell,可以快速的验证我们的想法和操作! 启动hdfs集群 spark@SparkSingleNode:/usr/loca ...

  9. Spark RDD概念学习系列之rdd的依赖关系彻底解密(十九)

    本期内容: 1.RDD依赖关系的本质内幕 2.依赖关系下的数据流视图 3.经典的RDD依赖关系解析 4.RDD依赖关系源码内幕 1.RDD依赖关系的本质内幕 由于RDD是粗粒度的操作数据集,每个Tra ...

随机推荐

  1. nginx部署及简单优化

    研究nginx优化时反复安装清理nginx,为方便做了一个简单部署脚本,用的最新稳定版1.14.0,默认路径,加入systemd系统进程管理中,可以通过systemd管理nginx的启动.终止.重载. ...

  2. C# 按位或,按位与, 按位异或

    a != b  ----->  a = a | b  , a 或者 b 只要有一个为 1, 那么,a 的最终结果就为 1 a &= b  ----->  a = a & b ...

  3. Linux 配置samba服务实现与Windows文件共享

    目录: 1.samba服务介绍 2. 安装samba服务和客户端 3.samba配置文件详解 4.配置实例 5.客户端挂载与测试 6.samba排错 1.Samba服务介绍     Samba 最先在 ...

  4. Asp.Net MVC Identity 2.2.1 使用技巧(五)

    创建用户管理相关视图 1.添加视图 打开UsersAdminController.cs   将鼠标移动到public ActionResult Index()上  右键>添加视图   系统会弹出 ...

  5. [BZOJ 1924][Sdoi2010]所驼门王的宝藏

    1924: [Sdoi2010]所驼门王的宝藏 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 1285  Solved: 574[Submit][Sta ...

  6. oracle-记录

    同時查新多个条件的数量 select sum(DECODE(trim(t.ASSESSED_RESULT),'维持',1,0)) maintainNum, sum(DECODE(trim(t.ASSE ...

  7. MMM的一个Bug

    最近由于 CPAN上 Net::ARP 这个包的稳定版本从 1.0 升级到了 1.0.8, 导致触发了mmm的一个bug.   bug的现象: agent没有办法将VIP附着在本机上. agent日志 ...

  8. 最大传输单元MTU

    http://baike.baidu.com/link?url=mU41JFjZzOb3R5crQFCNdocT5ovAswcoIqL2A4U6O5Re_U0-HIYndHG0vSKwc6HbptvH ...

  9. 【JavaScript】插件参数的写法

    就是实现复制的一个过程 (function() { var Explode = function(container, params) { 'use strict'; var n = this; if ...

  10. Python 多线程 进程与线程相关概念 (一)

    0x00 并行和并发 并行:同时做某些事,可以互不干扰的同一时刻做几件事. 并发:也是同时做某些事,但是强调,同一时刻做了几件事. 0x01 并发的解决: 1)队列.缓冲区: 排队就是队列,先进先出. ...