Spark最基本的单位 RDD

最近在负责Spark Streaming 结合 Spark Sql的相关项目,语言是Java,留下一些笔记,也供大家参考,如有错误,请指教!

基本概念:

1.RDD(Resilient Distributed Dataset):弹性分布式数据集。

2.RDD是只读的,由多个partition组成

3.Partition分区,和Block数据块是一一对应的

RDD管理:

1.Driver:保存block数据,并且管理RDD和Block的关系

2.Executor 会启动一个BlockManagerSlave,管理Block数据并向BlockManagerMaster注册该Block

3.当RDD不再需要存储的时候,BlockManagerMaster将向BlockManagerSlave发送指令删除相应的Block。

RDD操作:

Transformation:转换算子,这类转换并不触发提交作业,完成作业中间过程处理。

Action:行动算子,这类算子会触发SparkContext提交Job作业。

RDD的依赖关系有两种:窄依赖(narrow dependency)和宽依赖(wide dependency)。

窄依赖:每一个parent RDD的Partition最多被子RDD的一个Partition使用

宽依赖:多个子RDD的Partition会依赖同一个parent RDD的Partition

每一个Transformation,Action都会重新生成新的RDD

执行流程:


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容