【spark笔记】RDD解释和Spark架构

1、什么是RDD?

1、        RDD是Spark提供的核心抽象,弹性分布式数据集。

2、        RDD在抽象上来说是一种元素集合,包含了数据,它是被分区的,分为多个分区,每个分区分布在集群的不同节点上,从而让RDD的数据可以并行操作。

3、        RDD通常通过hadoop上的文件,即HDFS文件或者hive表,来进行创建,有时也可以通过应用程序中的集合来创建。

4、        RDD最重要的特性就是:提供了容错性,可以自动从节点失败中恢复过来,即如果某个节点上的RDDpartition,因为节点故障,导致数据丢失,那么RDD会自动通过自己的数据源重新计算该partition、这一切对使用者都是透明的

5、        RDD的数据默认情况下放在内存中,但是内存资源不足,spark会自动将RDD的数据写入磁盘。

 

 

2、Spark的架构:

spark采用的主从式的架构,主节点叫master,从节点叫worker

driver:在client模式下,哪一台服务器提交spark代码,那么哪一台机器就是driver服务器。(如果提交10个程序,10个driver服务器在同一台,压力大)在集群模式下,driver服务器并不是提交代码的那一台服务器,而是在提交代码的时候,在worker主机上随机挑一台作为driver服务器,如果提交10个应用,name就有可能10台driver服务器。

master:master是集群的资源管理者和调度者,类似于YARN里面的ResourceManager,还负责监控整个集群的监控状况。

 

spark执行流程:

1、启动driver,会做一些初始化工作,在初始化这个过程当中,会发送请求到master,请求注册。这样以后我们的master就知道有活要干了。

2、master接受到请求之后,master发送请求到worker,请求资源调度,说白了请求资源调度就是需要在worker节点上启动executor(具体应该启动几个executor,是在提交代码的时候指定好了的)。

3、executor启动好了以后会向driver进行反向注册,这样driver就知道哪些executor为它的任务进行服务了。

4、driver注册了executor后,这才开始执行spark程序,首先创建RDD,后面就是对RDD进行算子操作,我们会根据对这些 RDD的定义,会形成一堆Task任务,比如进行flatMap,map,reduceByKey等等操作

5、task任务会对RDD里面的partition进行算子操作

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值