Spark的数据存储
来源:互联网 发布:ubuntu jdk 编辑:程序博客网 时间:2024/06/06 01:17
Spark数据存储的核心是弹性分布式数据集(RDD)。RDD可以被抽象地理解为一个大的数组(Array),但是这个数组是分布在集群上的。逻辑上RDD的每个分区叫一个Partition。
在Spark的执行过程中,RDD经历了一个个的Transformation算子后,最后通过Action算子进行触发操作。
逻辑上每经历一次变换,就会将RDD转换成为一个新的RDD,RDD之间通过Lineage产生依赖关系,这个关系在容错中有很重要的作用。变换的输入和输出都是通过RDD。
RDD会被划分很多的分区分布到集群的多个节点中,分区是个逻辑概念,变换前后的新旧分区在物理上可能是同一块内存存储。这是很重要的优化,以防止函数式数据不变性(immutable)导致的内存需求无限扩张。有些RDD是计算的中间结果,其分区并不一定有相应的内存或磁盘数据与之对应,如果要迭代使用数据,可以调cache()函数缓存数据。
在物理上,RDD对象实质上是一个元数据结构,存储着Block,Node等的映射关系,以及其他的元数据信息。
一个RDD就是一组分区,在物理数据存储上,RDD的每个分区对应的就是一个Block,Block可以存储到内存,当内存不够时,可以存储到磁盘中。
每个Block中存储着RDD所有数据项的一个子集,暴露给用户的可以是一个Block的迭代器(例如:用户可以通过mapPartitions获得分区迭代器进行操作),也可以就是一个数据项(例如:通过map函数对每个数据项并行计算)。
1 0
- Spark的数据存储
- spark的数据存储
- Spark SQL的DataFrame会不会存储相同的数据
- Spark SQL之DataSet(DataFrame)的数据存储顺序
- Spark的存储管理
- Spark的存储管理
- Spark storage系列------1.Spark RDD.persist对数据的存储
- spark解决方案系列--------1.spark-streaming实时Join存储在HDFS大量数据的解决方案
- Spark数据存储到mysql中
- [spark streaming] ReceiverTracker 数据产生与存储
- spark中聊天记录的存储
- spark的持久化存储
- Spark的数据本地化
- Spark生态之Alluxio学习3---机器重启后数据存储位置的变化
- Spark入门——4: Spark的存储管理模块
- Spark:大数据的“电光石火”
- Spark:大数据的“电光石火”
- Spark:大数据的“电光石火”
- 【C语言】获取终端的显示区的大小
- js入门篇之jQuery
- windows下 判断当前时间是否大于某个时间
- 海备思USB3.0网卡转换器时而识别时而断开连接
- SwipeRefreshLayout与viewpager的滑动冲突的解决
- Spark的数据存储
- trace文件不断在写入
- nginx配置文件备份
- #与maxn及其自定义获取table元素个数
- Tomcat中实现IP访问限制
- memset初始化问题
- android学习笔记(三)__Activity和main.xml文件
- 【C语言】终端一检测到输入后直接输出,不需要按下enter键
- OpenGL入门(一):创建一个窗口