Spark核心编程原理

spark程序提交到spark集群进行运行,spark与MapReduce最大的不同在于,迭代式计算模型:
MapReduce:分为两个阶段,map和reduce,两个阶段完了,就结束了,所以我们在一个job里能做的处理很有限,只能在map和reduce里处理
spark:计算模型,可以分为n个阶段,因为它是内存迭代式的,我们在处理完一个阶段以后,可以继续往下处理很多阶段,而不只是两个阶段,所以,spark相较于MapReduce来说,计算模型可以提供更强大的功能

spark的核心编程是什么:
第一:定义初始的RDD,也就是说,你要定义的第一个RDD是从哪里读取数据,HDFS,Linux本地文件,集合
第二:定义对RDD的计算操作,这个在spark里称之为算子,map、reduce、flatMap等、比MapReduce提供的map和reduce强大的多了
第三:其实就是循环往复的过程,第一个计算完了以后,数据可能就会到了新的一批节点上,也就是变成一个新的RDD,然后再次反复,针对新的RDD定义计算操作
第四:最后,就是获得最终的数据,将数据保存起来
在这里插入图片描述

spark集群
一个RDD,在逻辑上,抽象地代表了一个HDFS文件。但是,它实际上是被分区的,分为多个分区,多个分区散落在spark集群中,不同的节点上。
比如下图RDD,分为9个partition,分布在9个节点上,体现出分布式
节点9如果出现了故障,导致partition丢失,那么此时spark会自动从自己来源的数据进行重计算,重新获取自己这份数据,体现出容错性
RDD的每个partition,在spark节点上存储时,默认都是放在内存中的,但是如果说内存放不下这么多数据时,那么就会把partition中的部分数据写入磁盘中,进行保存 ,体现出弹性

每一批节点上的每一批数据,实际上就是一个RDD,一个RDD是分布式的,所以数据都散落在一批节点上了,每个节点都存储了RDD的部分partition
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值