Spark RDD的外围原理
1、Spark的外围概念是RDD (resilientdistributed dataset),指的是一个只读的,可分区的分布式数据集,这个数据集的全副或局部能够缓存在内存中,在屡次计算间重用。
2、RDD在形象上来说是一种元素汇合,蕴含了数据。它是被分区的,分为多个分区,每个分区散布在集群中的不同Work节点上,从而让RDD中的数据能够被并行操作。(分布式数据集)
3、RDD通常通过Hadoop上的文件,即HDFS文件或者Hive表,来进行创立;有时也能够通过RDD的本地创立转换而来。
4、传统的MapReduce尽管具备主动容错、均衡负载和可拓展性的长处,然而其最大毛病是采纳非循环式的数据流模型,使得在迭代计算式要进行大量的磁盘IO操作。RDD正是解决这一毛病的形象办法。
RDD最重要的个性就是,提供了容错性,能够主动从节点失败中恢复过来。即如果某个节点上的RDD partition,因为节点故障,导致数据丢了,那么RDD会主动通过本人的数据起源从新计算该partition。这所有对使用者是通明的。RDD的lineage个性。
5、RDD的数据默认状况下寄存在内存中的,然而在内存资源有余时,Spark会主动将RDD数据写入磁盘。(弹性)
e8af68b7115e48207a63c74ac06cb7c3.png
一、为什么会有Spark?
因为传统的并行计算模型无奈无效的解决迭代计算(iterative)和交互式计算(interactive)而Spark的使命便是解决这两个问题,这也是他存在的价值和理由.
二、Spark如何解决迭代计算?
其次要实现思维就是RDD,把所有计算的数据保留在分布式的内存中.迭代计算通常状况下都是对同一个www.sangpi.com数据集做重复的迭代计算,数据在内存中将大大晋升IO操作.这也是Spark波及的外围:内存计算.
三、Spark如何实现交互式计算?
因为Spark是用scala语言实现的,Spark和scala可能严密的集成,所以Spark能够完满的使用scala的解释器,使得其中的scala能够向操作本地汇合对象一样轻松操作分布式数据集.
四、Spark和RDD的关系?
能够了解为:RDD是一种具备容错性基于内存的集群计算形象办法,Spark则是这个形象办法的实现.