Spark应用的结构的学习
关注公众号:分享电脑学习
回复"百度云盘" 可以免费获取所有学习文档的代码(不定期更新)
承接上一篇文档《Standalone集群搭建和Spark应用监控》
需要了解的概念
一、Spark应用的结构(Driver + Executors)
(一)、Driver:相当于MapReduce中ApplicationMaster,运行SparkContext上下文、SparkContext进行初始化的地方(JVM)、进行RDD的初始化、Task运行的资源申请、调度的地方,一般认为就是main运行的地方
(二)、Executors:具体的Task运行的地方,一个executor可以运行多个Task任务,一个spark应用可以有多个Executor
练习:
1、 local模式下没有启动SparkShell的情况下查看jps
2、 local模式下启动SparkShell的情况下查看jps
3、 启动集群模式查看jps
结论:
1、local模式:driver和executor运行在同一个进程(SparkSubmit),以线程的方式进行区分的。
2、集群模式:
Driver:SparkSubmit
Executor:CoarseGrainedExecutorBackend
练习:分别查看spark-shell和spark-submit命令可以找到下面的语句
1、 spark-shell底层运行的是spark-submit
2、 spark-submit底层执行的是spark-class
结论:每运行一个spark-submit,就相当于执行了一个Spark的Application
练习:
1、 执行词频统计前十(参考前面的课件)的语句(不执行collect),在浏览器查看ip:4040/jobs
2、 执行词频统计前十(参考前面的课件)的语句(执行collect),在浏览器查看ip:4040/jobs
3、 再执行一次上面的第二步,可以多运行几次查看
结论:Application,一个应用包含多个job
练习:点击ip:4040/jobs中的多个job,查看里面的信息
结论:一个Job里面包含多个Stage
练习:点击ip:4040/jobs中的多个Stage,查看里面的信息
结论:一个Stage里面可以包含多个Task。可以在词频统计前十中调用partition,查看分区个数,分区多数多的话 就可以有多个Task了
其中上面的结论补充(详细解释在后面慢慢讲解):
1、RDD的action类型的API一旦触发就会产生一个job,比如collect、take(10)、
2、有shuffle操作就会划分stage
3、Task就是最小的运行单位,是在executor处理对应分区数据的线程
Spark应用的结构的学习的更多相关文章
- Spark的Rpct模块的学习
Spark的Rpct模块的学习 Spark的Rpc模块是1.x重构出来可,以前的代码中大量使用了akka的类,为了把akka从项目的依赖中移除,所有添加了该模块.先看下该模块的几个主要的类 使用E ...
- FFmpeg 结构体学习(二): AVStream 分析
在上文FFmpeg 结构体学习(一): AVFormatContext 分析我们学习了AVFormatContext结构体的相关内容.本文,我们将讲述一下AVStream. AVStream是存储每一 ...
- FFmpeg 结构体学习(三): AVPacket 分析
在上文FFmpeg 结构体学习(二): AVStream 分析我们学习了AVStream结构体的相关内容.本文,我们将讲述一下AVPacket. AVPacket是存储压缩编码数据相关信息的结构体.下 ...
- FFmpeg 结构体学习(四): AVFrame 分析
在上文FFmpeg 结构体学习(三): AVPacket 分析我们学习了AVPacket结构体的相关内容.本文,我们将讲述一下AVFrame. AVFrame是包含码流参数较多的结构体.下面我们来分析 ...
- FFmpeg 结构体学习(五): AVCodec 分析
在上文FFmpeg 结构体学习(四): AVFrame 分析我们学习了AVFrame结构体的相关内容.本文,我们将讲述一下AVCodec. AVCodec是存储编解码器信息的结构体.下面我们来分析一下 ...
- FFmpeg 结构体学习(六): AVCodecContext 分析
在上文FFmpeg 结构体学习(五): AVCodec 分析我们学习了AVCodec结构体的相关内容.本文,我们将讲述一下AVCodecContext. AVCodecContext是包含变量较多的结 ...
- FFmpeg 结构体学习(七): AVIOContext 分析
在上文FFmpeg 结构体学习(六): AVCodecContext 分析我们学习了AVCodec结构体的相关内容.本文,我们将讲述一下AVIOContext. AVIOContext是FFMPEG管 ...
- 对结构化学习(structured learning)的理解
接触深度学习以来一直接触的概念都是回归,分类,偶尔接触到结构化学习的概念,似懂非懂的糊弄过去,实在是不负责的表现 翻阅维基百科https://en.wikipedia.org/wiki/Structu ...
- StreamDM:基于Spark Streaming、支持在线学习的流式分析算法引擎
StreamDM:基于Spark Streaming.支持在线学习的流式分析算法引擎 streamDM:Data Mining for Spark Streaming,华为诺亚方舟实验室开源了业界第一 ...
随机推荐
- 记一次SQL Server insert触发器操作
需求:在河道水情表(ST_RIVER_R )新增插入数据时,更新实时数据表(SS_data) 中关联字段的值. 需求概括下:当A表中新增数据时,同时更新B表中的某字段 代码如下: USE [DBCNB ...
- 【JAVA今法修真】 第一章 今法有万象 百家欲争鸣
大家好,我是南橘,因为这段时间很忙,忙着家里的事情,忙着工作的事情,忙着考试的事情,很多时候没有那么多经历去写新的东西,同时,也是看了网上一些比较新颖的文章输出方式,自己也就在想,我是不是也可以这样写 ...
- 『学了就忘』Linux服务管理 — 75、Linux系统中的服务
目录 1.服务的介绍 2.Windows系统中的服务 3.Linux系统中服务的分类 4.独立的服务和基于xinetd服务的区别 5.如何查看一个服务是独立的服务还是基于xinetd的服务 (1)查看 ...
- matplotlib 坐标轴刻度能见度问题
matplotlib 画图时如果图像太大就会挡住了坐标轴,刻度就看不到了.可以利用zorder设置level,level越小越先绘制. 例子: 1 import matplotlib.pyplot a ...
- java多线程2:Thread中的方法
静态方法: Thread类中的静态方法表示操作的线程是"正在执行静态方法所在的代码块的线程". 为什么Thread类中要有静态方法,这样就能对CPU当前正在运行的线程进行操作.下面 ...
- 【划重点】Python xlwt简介和用法
一.导入xlwt包,并初始化创建一个工作簿 import xlwt workbook=xlwt.Workbook() # 初始化创建一个工作簿 二.创建表单 sheet1=workbook.add_s ...
- STL 较详尽总结
STL就是Standard Template Library,标准模板库.这可能是一个历史上最令人兴奋的工具的最无聊的术语.从根本上说,STL是一些"容器"的集合,这些" ...
- 延时间隔(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 像"饭前洗手"这种事,绝大部分情况下,是洗完手马上就可以动筷子开吃,但总会有意外,比如手都洗好了,突然 ...
- 4、BFS算法套路框架——Go语言版
前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...
- AT266 迷子のCDケース 题解
Content 有 \(n+1\) 个碟,编号为 \(0\sim n\),一开始 \(0\) 号碟在播放机上,其他的碟依次放进了 \(n\) 个盒子里面.现在有 \(m\) 次操作,每次操作找到当前在 ...