赞
踩
目标:
rdd
rdd
的特点spark
的工作原理,如下图
spark
集群,也可以是基于 yarn
的,图上可以理解为spark
的 standalone
集群,集群中有 6
个节点spark
的客户端节点,这个节点主要的任务是向spark
集群提交任务,hdfs
是提交的任务所需要的数据源
,当spark读取hdfs中的数据后,会将数据转化为rdd
,rdd
是弹性分布式数据集,是一个逻辑概念,在此,可以先理解为一个数据集合就可,这个rdd
是具有分区特性的,如节点1
,节点2
,节点3
,这样可以轻易的提高数据的并发处理能力rdd
数据进行处理了,图中使用了,flatMap
函数,计算之后的结果还是一个带有分区的rdd
,就是在节点4
,节点5
,节点6
hdfs
上的,也可以存储在其它的存储介质中。针对上面几条,可以总结出,spark
处理数据的基本构成,如下图
后面
spark
代码中基本都是这三板斧
,可以参考 单词统计编程的代码
rdd
是 spark
中一个很重要的概念
在实际工作中,rdd
通常通过 hadoop
上的文件,即 hdfs
文件进行创建,也可以通过程序中的集合来创建,rdd
是 spark
提供的核心抽象,全称为 Resillient Distributed Dataset
,即弹性分布式数据集
rdd
数据默认情况下是存储在内存中,但是在内存资源不足时,spark
也会自动将 rdd
数据写入磁盘rdd
在抽象上来说是一种元素集合,它是被分区
的,每个分区分布在集群中的不同节点上,从而让 rdd
中的数据可以被并行操作rdd
最重要的特性就是提供了容错性,可以自动从节点失败中恢复过来,如果某个节点上的 rdd
分区,因为节点故障了,导致数据丢了,那么 rdd
会自动通过自己的数据来源重新计算该分区
的数据下面熟悉一下 spark
架构相关的进程信息
注意: 在此是以 spark
的 standalone
集群为例进行分析,其实在 spark standalone环境安装 中,成功后有查询对应的 进程
是否成功启动了
spark
程序就在driver
(进程)上,由 driver
进程负责执行,driver
进程所在的节点可以是spark
集群的某一个节点,或者就是提交任务的客户端节点,具体driver
进程在哪个节点上启动,是由提交任务时指定的参数决定的worker
负责启动,主要为了执行数据处理和计算executor
负责启动,是真正干活的如下图来看一spark
的架构原理
spark
的客户端机器上通过driver
进程执行的spark
代码,通过spark-submit
脚本提交spark
任务的时候driver
进程就启动了。driver
启动之后,会做一些初始化操作,并找到集群的master
进程,对spark
程序进行注册master
收到 spark
程序注册成功之后,会向 worker
节点发送请求,进行资源调试和分配worker
收到 master
请求后,为任务启动 executor
进程,启动多少个,会根据配置来启动executor
启动之后会向 driver
进行注册,这样 driver
就能知道哪些 executor
在为它服务了driver
会根据对 rdd
定义的操作,提交一堆的 task
(map,flatMap等) 去 executor
上执行spark
的工作与架构原理就介绍至此,如有问题,欢迎评论区留言。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。