弹性分布式数据集RDD介绍

wux_labs 2023-01-25 00:01:04

弹性分布式数据集(Resilient Distributed Datasets,RDD),是一种分布式内存数据抽象,代表一个只读的、可分区的、元素可并行计算的弹性分布式数据集。Datasets,表示这是一个数据集合,用于存放数据,就像Python集合对象一样可以存放数据。Distributed,表示这个数据集中的数据是分布式存储的,可存储于集群中的不同节点上,在进行数据计算的时候可以分布式并行计算。Resilient,表示弹性的,主要体现在几个方面:
(1)存储弹性,表示这个数据集中的数据可以存储在内存或者磁盘中,Spark优先把数据存放到内存中,如果内存存放不下,就会存放到磁盘里面。
(2)容错弹性,RDD采用基于血缘的高效容错机制,在RDD的设计中,数据是只读的不可修改,如果需要修改数据,必须从父RDD转换生成新的子RDD,由此在不同的RDD之间建立血缘关系。因此RDD是天生具有高容错机制的特殊集合,当一个RDD失效的时候,只需要通过重新计算上游的父RDD来重新生成丢失的RDD数据,而不需要通过数据冗余的方式实现容错。
(3)分区弹性,可以根据业务的特征,动态调整数据集的分区的数量,提升应用程序的整体执行效率。
在分布式计算中,我们需要实现分区控制、Shuffle控制、数据存储、数据序列化、数据发送、数据计算等,这些功能不能简单的通过Python内置的本地集合对象去完成,这时候我们就需要RDD。可以认为RDD是分布式的List或者Array。

...全文
21 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

5,761

社区成员

发帖
与我相关
我的任务
社区描述
姓什么?我姓大。 大什么?大数据。 有多大?lambda。 家族成员有哪些?Hadoop、Hive、Spark。 开发语言有什么?Java、Python、Scala。
大数据 个人社区
社区管理员
  • wux_labs
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧