spark-day02-核心编程-RDD

一:概念介绍

spark是最基本的数据处理模型,最小的计算单元,易于后续的扩展。

spark-day02-核心编程-RDD_第1张图片

二:IO基本实现原理

        字节流:

spark-day02-核心编程-RDD_第2张图片

spark-day02-核心编程-RDD_第3张图片

        字符流:

spark-day02-核心编程-RDD_第4张图片

三:RDD和IO之间的关系 

        RDD数据只有在调用collect方法时,才会执行真正的业务逻辑操作。之前的封装全部都是功能的扩展。RDD是不保存数据的,但是IO可以临时保存一部分数据。

spark-day02-核心编程-RDD_第5张图片

 四:spark特点

RDD通过不同的分区进行分配给不同的Task

spark-day02-核心编程-RDD_第6张图片

 弹性:

        存储的弹性:内存和磁盘的自动切换

        容错的弹性:数据丢失可以自动恢复

        计算的弹性:计算出错重试机制

        分片弹性:可根据需要重新分片

分布式:数据存储在大数据集群不同节点上

数据集:RDD封装了计算逻辑,并不保存数据

数据抽象:RDD是一个抽象类,需要子类具体实现

不可变:RDD封装了计算逻辑,是不可以改变的,想要改变,只能产生新的RDD,在新的RDD里面封装计算逻辑

可分区、并行计算。

五:五大主要配置

        1:分区列表:RDD数据结构中存在分区列表,用于执行任务时并行计算,是实现分布式计算的重要属性。

        2:分区计算函数。每个分区会有计算(计算逻辑是相同的,数据不一致)

        3:RDD之间的依赖关系。RDD是计算模型的封装,当需求中需要将多个计算模型进行组合时,就需要将多个RDD建立依赖关系。

         4:分区器(当数据为KV类型数据时,可以通过设定分区器自定义数据的分区),就是将RDD读取完数据之后,如何将指定的数据放到指定分区的规则。

        5:首选位置。计算数据时,可以根据计算节点的状态选择不同的节点位置进行计算。判断Task发送给哪个Exectuor,效率最优。

六:RDD创建

        1:内存创建,两种方法,parallelize和makerdd,makerdd底层仍然调用parallelize方法

spark-day02-核心编程-RDD_第7张图片

        2:文件创建

spark-day02-核心编程-RDD_第8张图片

        3:文件创建,能够显示数据结果来自于哪些文件

spark-day02-核心编程-RDD_第9张图片 七:RDD的并行度和分区

        分区和并行度是不一致的,主要是看分区之后,TASK和EXECUTOR的个数关系

         1:内存分区,分区数的设置以及相关数据的分配

spark-day02-核心编程-RDD_第10张图片

spark-day02-核心编程-RDD_第11张图片         2:文件分区,分区数的设置以及相关数据的分配

spark-day02-核心编程-RDD_第12张图片

 spark-day02-核心编程-RDD_第13张图片

 

 

你可能感兴趣的:(spark,spark,大数据,big,data)