RDD基本特性
2015-10-31 20:44
281 查看
RDD基本特性
1、什么叫RDD?
2、RDD有怎么样的特性?
1、RDD是Spark提供的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据集。
2、RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上,从而让RDD中的数据可以被并行操作。(分布式数据集)
3、RDD通常通过Hadoop上的文件,即HDFS文件或者Hive表,来进行创建;有时也可以通过应用程序中的集合来创建。
4、RDD最重要的特性就是,提供了容错性,可以自动从节点失败中恢复过来。即如果某个节点上的RDD partition,因为节点故障,导致数据丢了,那么RDD会自动通过自己的数据来源重新计算该partition。这一切对使用者是透明的。
5、RDD的数据默认情况下存放在内存中的,但是在内存资源不足时,Spark会自动将RDD数据写入磁盘。(弹性)
下面用图表示:
一个RDD,在逻辑上,抽象地代表了一个HDFS文件。
但是,它实际上是被分区得。分为多个分区。多个分区散落在Spark集群中,不同的节点上。
比如说,RDD有90万数据。分为9个partition,9个分区。
现在,节点9出了些故障,导致partition9的数据丢失了。那么此时Spark会脆弱到直接报错,直接挂掉吗?不可能!!
RDD是有很强的容错性的,当它发现自己的数据丢失了以后,会自动从自己来源的数据进行重计算,重新获取自己这份数据,这一切对用户,都是完全透明的。
RDD的每个partition,在spark节点上存储时,默认都是放在内存中的。但是如果说内存放不下这么多数据时,比如每个节点最多放5万数据,结果你每个partition是10万数据。那么就会把partition中的部分数据写入磁盘上,进行保存。
而上述这一切,对于用户来说,都是完全透明的。也就是说,你不用去管RDD的数据存储在哪里,内存,还是磁盘。只要关注,你针对RDD来进行计算,和处理,等等操作即可。
所以说,RDD的这种自动进行内存和磁盘之间权衡和切换的机制,就是RDD的弹性的特点所在。
1、什么叫RDD?
2、RDD有怎么样的特性?
1、RDD是Spark提供的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据集。
2、RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上,从而让RDD中的数据可以被并行操作。(分布式数据集)
3、RDD通常通过Hadoop上的文件,即HDFS文件或者Hive表,来进行创建;有时也可以通过应用程序中的集合来创建。
4、RDD最重要的特性就是,提供了容错性,可以自动从节点失败中恢复过来。即如果某个节点上的RDD partition,因为节点故障,导致数据丢了,那么RDD会自动通过自己的数据来源重新计算该partition。这一切对使用者是透明的。
5、RDD的数据默认情况下存放在内存中的,但是在内存资源不足时,Spark会自动将RDD数据写入磁盘。(弹性)
下面用图表示:
一个RDD,在逻辑上,抽象地代表了一个HDFS文件。
但是,它实际上是被分区得。分为多个分区。多个分区散落在Spark集群中,不同的节点上。
比如说,RDD有90万数据。分为9个partition,9个分区。
现在,节点9出了些故障,导致partition9的数据丢失了。那么此时Spark会脆弱到直接报错,直接挂掉吗?不可能!!
RDD是有很强的容错性的,当它发现自己的数据丢失了以后,会自动从自己来源的数据进行重计算,重新获取自己这份数据,这一切对用户,都是完全透明的。
RDD的每个partition,在spark节点上存储时,默认都是放在内存中的。但是如果说内存放不下这么多数据时,比如每个节点最多放5万数据,结果你每个partition是10万数据。那么就会把partition中的部分数据写入磁盘上,进行保存。
而上述这一切,对于用户来说,都是完全透明的。也就是说,你不用去管RDD的数据存储在哪里,内存,还是磁盘。只要关注,你针对RDD来进行计算,和处理,等等操作即可。
所以说,RDD的这种自动进行内存和磁盘之间权衡和切换的机制,就是RDD的弹性的特点所在。
相关文章推荐
- VS2010bug 当生成或重新生成时,出现 不能复制文件(从obj\debug到bin\debug),文件正在被另一个进程使用的错误解决办法
- LayoutInflater和inflate()方法的用法
- Java多线程学习(吐血超详细总结)
- Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- android SQLiteDatabase数据库使用的时候 常见问题
- TCP/IP详解 卷1 笔记 第9章 IP选路
- (课后作业,搬运整合) matlab的图像风格化和在android 上的移植
- c语言const和c++的const的区别
- 团队博客目录
- android 之 spinner的简单使用
- Android-Universal-Image-Loader学习笔记(一)
- 迷宫寻宝(一) 82
- 任意输入字母打印字母三角
- bootstrap初探2
- ArrayList与LinkedList的基本添加删除方法 模拟栈 队列
- UVA-10269 Adventure of Super Mario (dijkstra)
- 【LEETCODE】235-Lowest Common Ancestor of a Binary Search Tree
- 词语变形练习题
- 三、jQuery--jQuery基础--jQuery基础课程--第8章 jQuery 实现Ajax应用
- LNMP - nginx代理详解