spark之RDD(四)

原创 2015年11月21日 11:39:54

7.Spark一切都以RDD为基础

RDD resilient distributed dataset

 弹性分布式数据集

--a list of partitions 

分区列表

--a function for computing each split

计算每个切片的函数

--a list of dependencies on other rdds 

对其他RDD的依赖列表

--optionally, a partitioner for key-valuerdds

对key-value类型的RDD的分区器

                   (e.g.to say that the rdd is hash-partitioned)

--optionally,a list of preferred locationsto compute each split on

      每个数据切片的预定义地址              

                   (e.g.block locations for an hdfs file)

8. spark  runtime

使用Spark,开发者需要编写一个Driver程序,连接到集群以运行Worker如下所示。Driver定义了一个或多个RDD,并调用RDD上的动作。Worker是长时间的运行的进程,将RDD分区以java对象的形式缓存在内存中。

 

流程示意

分布式文件系统 --加载数据集--  transformation  --action触发执行-- action

transformation 是懒加载模式,执行action才会真正执行

rdd可以从集合直接转换而来,也可以由先现存的任何hadoop inputformat而来,亦或者hbase等等

9.RDD创建的方式

Parallelized Collections(并行集合)

valdata=Array(1,2,3,4,5)
valdistData=sc.parallelize(data)

External Datasets(外部数据集)

scala>valdistFile=sc.textFile("data.txt")
distFile:RDD[String]=MappedRDD@1d4cee08

变量名.toDebugString 查看多少RDD

10.延迟执行与执行的方法

11.Spark的高容错机制lineage

基于DAG图,lineage是轻量级而高效的:


操作之间相互具备lineage的关系,每个操作只关心其父操作,各个分片的数据之间互不影响,出现错误的时候只要恢复单个Split的特定部分即可:


每个RDD都会记录自己依赖于那个RDD,万一某个RDD的某些partition挂了,可以通过其他RDD并行计算迅速恢复回来。

12.宽依赖与窄依赖



Spark RDD API 参考示例(五)

Spark RDD API 参考示例 Spark RDD入门教程 Spark RDD 详解
  • u010472512
  • u010472512
  • 2017年06月09日 20:45
  • 271

spark rdd存储开销分析

背景很多使用spark的朋友很想知道rdd里的元素是怎么存储的,它们占用多少存储空间?本次我们将以实验的方式进行测试,展示rdd存储开销性能。 关于rdd的元素怎么存储,spark里面实现了好几种不...
  • tanglizhe1105
  • tanglizhe1105
  • 2016年04月03日 16:56
  • 1753

Spark RDD使用详解2--RDD创建方式

关键字:Spark RDD 创建、parallelize、makeRDD、textFile、hadoopFile、hadoopRDD、newAPIHadoopFile、newAPIHadoopRDD...
  • guohecang
  • guohecang
  • 2016年06月23日 16:47
  • 11699

自定义排序及RDD理解,spark

自定义排序1: object CustomSort1 {     def main(args: Array[String]): Unit = {     val conf = ...
  • xiaoqiang17
  • xiaoqiang17
  • 2017年08月24日 22:06
  • 456

Spark RDD使用详解1--RDD原理

在集群背后,有一个非常重要的分布式数据架构,即弹性分布式数据集(Resilient Distributed Dataset,RDD)。它是一种有容错机制的特殊集合,可以分布在集群的节点上,以函数式编操...
  • guohecang
  • guohecang
  • 2016年06月22日 19:34
  • 14010

spark性能调优之重构RDD架构,RDD持久化

当第一次对RDD2执行算子,获取RDD3的时候,就会从RDD1开始计算,就是读取HDFS文件,然后对RDD1执行算子,获取到RDD2,然后再计算,得到RDD3 默认情况下,多次对一个RDD执行算子...
  • hutao_hadoop
  • hutao_hadoop
  • 2016年09月28日 21:27
  • 1448

Spark的基本数据结构RDD介绍

RDD的全称:弹性分布式数据集合,它是spark的基本数据结构,spark中的所有数据都是通过RDD的形式进行组织。 RDD是不可变的数据集合,不可变的意思是RDD中的每个分区数据是只读的。 RDD数...
  • qq_31598113
  • qq_31598113
  • 2017年04月26日 21:26
  • 1326

Spark RDD 的那些个事事

内容来自京东金融微信公众号整理和解读 Google 发表三大论文  GFS  MapReduce BigTable  衍生出很多开源框架 ,毫无疑问 Hadoop 在 大家心中的地位是不可估...
  • haohaixingyun
  • haohaixingyun
  • 2017年03月28日 22:08
  • 250

spark rdd 操作

spark rdd 操作
  • lzz360
  • lzz360
  • 2016年06月13日 10:46
  • 668

Spark RDD基本操作

Spark RDD Scala语言编程RDD(Resilient Distributed Dataset)是一个不可变的分布式对象集合, 每个rdd被分为多个分区, 这些分区运行在集群的不同节点上。r...
  • wusuopuBUPT
  • wusuopuBUPT
  • 2016年11月13日 20:32
  • 3329
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spark之RDD(四)
举报原因:
原因补充:

(最多只允许输入30个字)