苏州cms模板建站,外贸营销俱乐部,济南网站制作报价,合肥网站设计哪家公司好概述
目标#xff1a;
spark的工作原理spark数据处理通用流程rdd 什么是rddrdd 的特点 spark架构 spark架构相关进程spark架构原理
spark的工作原理
spark 的工作原理#xff0c;如下图
图中中间部分是spark集群#xff0c;也可以是基于 yarn 的#xff0c;图上可以…概述
目标
spark的工作原理spark数据处理通用流程rdd 什么是rddrdd 的特点 spark架构 spark架构相关进程spark架构原理
spark的工作原理
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
rdd 是 spark 中一个很重要的概念
什么是rdd
在实际工作中rdd 通常通过 hadoop 上的文件即 hdfs 文件进行创建也可以通过程序中的集合来创建rdd是 spark 提供的核心抽象全称为 Resillient Distributed Dataset 即弹性分布式数据集
rdd 的特点
弹性rdd 数据默认情况下是存储在内存中但是在内存资源不足时spark 也会自动将 rdd 数据写入磁盘分布式 rdd 在抽象上来说是一种元素集合它是被分区的每个分区分布在集群中的不同节点上从而让 rdd 中的数据可以被并行操作容错性 rdd 最重要的特性就是提供了容错性可以自动从节点失败中恢复过来如果某个节点上的 rdd 分区因为节点故障了导致数据丢了那么 rdd 会自动通过自己的数据来源重新计算该分区的数据
spark架构
下面熟悉一下 spark 架构相关的进程信息 注意 在此是以 spark 的 standalone 集群为例进行分析其实在 spark standalone环境安装 中成功后有查询对应的 进程 是否成功启动了
spark架构相关进程
driver编写的 spark 程序就在driver(进程)上由 driver 进程负责执行driver 进程所在的节点可以是spark 集群的某一个节点或者就是提交任务的客户端节点具体driver进程在哪个节点上启动是由提交任务时指定的参数决定的master集群的主节点中启动的进程主要负责集群资源管理和分配还有集群的监控等。worker集群的从节点中启动的进程主要负责启动其它进程来执行具体的数据处理和计算任务executor此进程由worker 负责启动主要为了执行数据处理和计算taks是一个线程由executor 负责启动是真正干活的
spark架构原理
如下图来看一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 的工作与架构原理就介绍至此如有问题欢迎评论区留言。