首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
Spark RDD概念学习系列之Spark的数据存储(十二)
】的更多相关文章
Spark RDD概念学习系列之Spark的数据存储(十二)
Spark数据存储的核心是弹性分布式数据集(RDD). RDD可以被抽象地理解为一个大的数组(Array),但是这个数组是分布在集群上的. 逻辑上RDD的每个分区叫一个Partition. 在Spark的执行过程中,RDD经历一个个的Transfomation算子之后,最后通过Action算子进行触发操作. 逻辑上每经历一次变换,就会将RDD转换为一个新的RDD,RDD之间通过Lineage产生依赖关系,这个关系在容错中有很重要的作用. 变换的输入和输出都是RDD.RDD会被划分成很多的分区分布…
Spark RDD概念学习系列之Spark的算子的分类(十一)
Spark的算子的分类 从大方向来说,Spark 算子大致可以分为以下两类: 1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理. Transformation 操作是延迟计算的,也就是说从一个RDD 转换生成另一个 RDD 的转换操作不是马上执行,需要等到有 Action 操作的时候才会真正触发运算. 2)Action 行动算子:这类算子会触发 SparkContext 提交 Job 作业. Action 算子会触发 Spark 提交作业(Jo…
Spark RDD概念学习系列之Spark Hash Shuffle内幕彻底解密(二十)
本博文的主要内容: 1.Hash Shuffle彻底解密 2.Shuffle Pluggable解密 3.Sorted Shuffle解密 4.Shuffle性能优化 一:到底什么是Shuffle? Shuffle中文翻译为"洗牌",需要Shuffle的关键性原因是某种具有共同特征的数据需要最终汇聚到一个计算节点上进行计算. 二:Shuffle可能面临的问题? 运行Task的时候才会产生Shuffle(Shuffle已经融化在Spark的算子中了). 1. 数据量非常大:[几千甚至上万…
Spark RDD概念学习系列之Spark的算子的作用(十四)
Spark的算子的作用 首先,关于spark算子的分类,详细见 http://www.cnblogs.com/zlslch/p/5723857.html 1.Transformation 变换/转换算子 1.map算子 2.flatMap算子 3.mapPartitions算子 4.union算子 5.cartesian算子 6.grouBy算子 7.filter算子 8.sample算子 9.cache算子 10.persist算子 11.mapValues算子 12.combineByKey…
Spark RDD概念学习系列之RDD的转换(十)
RDD的转换 Spark会根据用户提交的计算逻辑中的RDD的转换和动作来生成RDD之间的依赖关系,同时这个计算链也就生成了逻辑上的DAG.接下来以“Word Count”为例,详细描述这个DAG生成的实现过程. Spark Scala版本的Word Count程序如下: 1: val file = spark.textFile("hdfs://...") 2: val counts = file.flatMap(line => line.split(" "))…
Spark RDD概念学习系列之RDD的checkpoint(九)
RDD的检查点 首先,要清楚.为什么spark要引入检查点机制?引入RDD的检查点? 答:如果缓存丢失了,则需要重新计算.如果计算特别复杂或者计算耗时特别多,那么缓存丢失对于整个Job的影响是不容忽视的.为了避免缓存丢失重新计算带来的开销,Spark又引入检查点机制. RDD的缓存能够在第一次计算完成后,将计算结果保存到内存.本地文件系统或者Tachyon(分布式内存文件系统)中.通过缓存,Spark避免了RDD上的重复计算,能够极大地提升计算速度.但是,如果缓存丢失了,则需要重新计算.如果…
Spark RDD概念学习系列之RDD的缓存(八)
RDD的缓存 RDD的缓存和RDD的checkpoint的区别 缓存是在计算结束后,直接将计算结果通过用户定义的存储级别(存储级别定义了缓存存储的介质,现在支持内存.本地文件系统和Tachyon)写入不同的介质. 而检查点不同,它是在计算完成后,重新建立一个Job来计算. 为了避免重复计算,推荐先将RDD缓存,这样就能保证检查点的操作可以快速完成. RDD的缓存能够在第一次计算完成后,将计算结果保存到内存.本地文件系统或者Tachyon(分布式内存文件系统)中.通过缓存,Spark避免了RD…
Spark RDD概念学习系列之RDD的创建(六)
RDD的创建 两种方式来创建RDD: 1)由一个已经存在的Scala集合创建 2)由外部存储系统的数据集创建,包括本地文件系统,还有所有Hadoop支持的数据集,比如HDFS.Cassandra.HBase.Amazon S3等. RDD只能基于在稳定物理存储中的数据集和其他已有的RDD上执行确定性操作来创建.这些确定性操作称为转换,如map.filter.groupBy.join. 第1个RDD:代表了spark应用程序输入数据的来源,通过Transformation来对RDD进行各种算子的…
Spark RDD概念学习系列之RDD的5大特点(五)
RDD的5大特点 1)有一个分片列表,就是能被切分,和Hadoop一样,能够切分的数据才能并行计算. 一组分片(partition),即数据集的基本组成单位,对于RDD来说,每个分片都会被一个计算任务处理,并决定并行计算的粒度.用户可以在创建RDD时指定RDD的分片个数,如果没有指定,那么就会采用默认值.默认值就是程序所分配到的CPU Core的数目.每个分配的存储是由BlockManager实现的,每个分区都会被逻辑映射成BlockManager的一个Block,而这个Block会被一个…
Spark RDD概念学习系列之RDD是什么?(四)
RDD是什么? 通俗地理解,RDD可以被抽象地理解为一个大的数组(Array),但是这个数组是分布在集群上的.详细见 Spark的数据存储 Spark的核心数据模型是RDD,但RDD是个抽象类,具体由各子类实现,如MappedRDD. ShuffledRDD等子类. Spark将常用的大数据操作都转化成为RDD的子类. 官方对RDD的解释是:弹性分布式数据集,全称是Resilient Distributed Datasets.RDD是只读的.分区记录的集合.RDD只能基于在稳定物理存储…