当前位置:网站首页>Spark的原理解析
Spark的原理解析
2022-07-02 06:24:00 【无聊的n一天】
Spark的原理解析
文章目录
前言
今天主要学习的是一个Spark框架的原理解析,spark的运行流程,RDD的一个执行过程,依赖关系的一个介绍
一. Spark简介
Spark是由scala开发的,scala运行于JAVA平台(JVM),并兼容现有的JAVA程序,所以使用scala编写的程序由Java jdk就能运行,并不需要scala jdk
Spark与MapReduce对比

由上图可以看出,使用Hadoop MR进行迭代计算非常耗资源
Spark将数据载入内存后,之后的迭代计算都可以直接使用内存中的中间结果作运算,避免了从磁盘中频繁读取数据
二.基本概念和架构设计

Spark运行的基本流程(这里以YARN为例)

- 客户端提交应用程序的时候,首先为应用构起基本运行环境SparkContext并向RM注册并申请资源,即由Driver创建一个SC进行资源的申请,任务的分配和监控
这里的Driver理解为用户编写的应用程序,SparkContex(SC)t就类似RM中的AM功能 - RM收到请求后会启动Executor并分配资源,并向SC注册并申请Task,并时刻与SC保持通信防止断联。
- 待作业运行完后SC向RM申请注销并关闭自己
RDD的一个基本运行概述
RDD的典型执行过程如下

1.RDD读入外部数据源并创建,如果数据源大就会创建多个分区,不同的分区就会到不同的数据节点上,就是因为这一特性,才叫RDD:分布式弹性数据集
2.RDD经过一系列的转换操作:每一次转换操作都会形成新的RDD供下一个转换操作使用,这样串起来就构成了DAG图
3.最后一个RDD经过动作操作输出到外部数据源
处理过程中,RDD都会转换,但不会具体的生成结果,只有遇到动作操作(action)才会去计算相应的结果

RDD的依赖关系
如上图所示,RDD的依赖关系分为宽依赖和窄依赖,什么有窄依赖,下面我说一下宽依赖,表现为存在一个父RDD的一个分区对应一个子RDD的多个分区
总结
今天写的比较水,总的来说就是为了巩固今天的所学而写的。后面有时间了还会再具体一点
边栏推荐
- JS countdown case
- Redis -- cache breakdown, penetration, avalanche
- 2021-07-17c /cad secondary development creation circle (5)
- There is no way to drag the win10 desktop icon (you can select it, open it, delete it, create it, etc., but you can't drag it)
- php中的数字金额转换大写数字
- Wechat applet Foundation
- IDEA2020中PySpark的两表关联(字段名相同)
- Huawei mindspire open source internship machine test questions
- js删除字符串的最后一位
- Sentry construction and use
猜你喜欢

A preliminary study on ant group G6

How to debug wechat built-in browser applications (enterprise number, official account, subscription number)

Unexpected inconsistency caused by abnormal power failure; Run fsck manually problem resolved

Build FRP for intranet penetration

搭建frp进行内网穿透

2021-07-05c /cad secondary development create arc (4)

IDEA2020中PySpark的两表关联(字段名相同)

Stack (linear structure)

Solve the problem of bindchange event jitter of swiper component of wechat applet

Win10: add or delete boot items, and add user-defined boot files to boot items
随机推荐
mapreduce概念和案例(尚硅谷学习笔记)
IDEA2020中PySpark的两表关联(字段名相同)
Latex error: the font size command \normalsize is not defined problem solved
js数组的常用的原型方法
php中树形结构转数组(拉平树结构,保留上下级排序)
MySQL中的正则表达式
Cve - 2015 - 1635 (ms15 - 034) réplication de la vulnérabilité d'exécution de code à distance
VSCODE 安装LATEX环境,参数配置,常见问题解决
部署api_automation_test过程中遇到的问题
Overload global and member new/delete
JS create a custom JSON array
Sqli labs customs clearance summary-page4
Go package name
In depth study of JVM bottom layer (V): class loading mechanism
IDEA2020中测试PySpark的运行出错
在php的开发环境中如何调取WebService?
AWD learning
DeprecationWarning: . ix is deprecated. Please use. loc for label based indexing or. iloc for positi
php中获取汉字拼音大写首字母
Latex compiles Chinese in vscode and solves the problem of using Chinese path