app

 基于spark的用户程序,包含了一个driver program和集群中多个executor
driver和executor存在心跳机制确保存活
3 --conf spark.executor.instances=5 --conf spark.executor.cores=8 --conf spark.executor.memory=80G

rdd

 弹性分布式数据集
只读的、分区(partition)记录的集合
初代rdd处于血统的顶层,记录任务所需的数据的分区信息,每个分区数据的读取方法
子代rdd不真正的存储信息,只记录血统信息
真正的数据读取,应该是task具体被执行的时候,触发action操作的时候才发生的

算子

 分为transformation和action
transformation: map filter flatMap union groupByKey reduceByKey sortByKey join
action: reduce collect count first saveAsTextFile countByKey foreach

partition

 rdd存储机制类似hdfs,分布式存储
hdfs被切分成多个block(默认128M)进行存储,rdd被切分为多个partition进行存储
不同的partition可能在不同的节点上
再spark读取hdfs的场景下,spark把hdfs的block读到内存就会抽象为spark的partition
将RDD持久化到hdfs上,RDD的每个partition就会存成一个文件,如果文件小于128M,就可以理解为一个partition对应hdfs的一个block。反之,如果大于128M,就会被且分为多个block,这样,一个partition就会对应多个block。

job

 一个action算子触发一个job
一个job中有好多的task,task是执行job的逻辑单元(猜测是根据partition划分任务)
一个job根据是否有shuffle发生可以分为好多的stage

stage

 rdd中的依赖关系(血统)分为宽依赖和窄依赖
窄依赖:父RDD的一个分区只被一个子RDD的分区使用,不产生shuffle,即父子关系为“一对一”或者“多对一”
宽依赖:产生shuffle,父子关系为“一对多”或者“多对多”
spark根据rdd之间的依赖关系形成DAG有向无环图,DAG提交给DAGScheduler,DAGScheduler会把DAG划分相互依赖的多个stage,划分stage的依据就是rdd之间的宽窄依赖
遇到宽依赖就划分stage
每个stage包含一个或多个task任务
这些task以taskSet的形式提交给TaskScheduler运行
stage是由一组并行的task组成
stage切割规则:从后往前,遇到宽依赖就切割stage。
10 一个stage以外部文件或者shuffle结果作为开始,以产生shuffle或者生成最终结果时结束
11 猜测stage与TaskSet为一一对应的关系

task

 分为两种:shuffleMapTask和resultTask
2 默认按照partition进行拆分task
--conf spark.default.parallelism=1000 设置task并行的数量
个人理解以上各种概念都是抽象概念,即简单的理解为全部发生在driver端,只有task相关的信息会被序列化发送到executor去执行

参考链接:
https://www.cnblogs.com/jechedo/p/5732951.html
https://www.2cto.com/net/201802/719956.html
https://blog.csdn.net/fortuna_i/article/details/81170565
https://www.2cto.com/net/201712/703261.html
https://blog.csdn.net/zhangzeyuan56/article/details/80935034
https://www.jianshu.com/p/3e79db80c43c?from=timeline&isappinstalled=0

最新文章

  1. java基础_集合List与Set接口
  2. dom4j解析示例
  3. 前端编码风格规范之 JavaScript 规范
  4. 图文详解远程部署ASP.NET MVC 5项目
  5. android 兼容性测试 CTS 测试过程(实践测试验证通过)
  6. .NET操作JSON
  7. Button的四种Click响应方法
  8. 《Programming WPF》翻译 第9章 4.模板
  9. 安装程序时出现错误代码0x80070422
  10. struts2中struts.xml 放置路径的问题
  11. 建造者(Builder)模式
  12. PBRT笔记(8)——材质
  13. VS2010创建MVC4项目提示错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral,
  14. fisher线性判别
  15. Python小练习之寻找101到200之间的素数
  16. CCF-URL映射-(正则匹配)-20180303
  17. 查阅Springboot官方文档方式----------------Springboot2.0.2最新稳定版
  18. Kali Linux没有声音的解决方法
  19. leetcode242
  20. 洛谷P2792 [JSOI2008]小店购物(最小树形图)

热门文章

  1. Java多态之Father f=new Son();
  2. 【WPF学习】第二十一章 特殊容器
  3. linux-->yii2报yii\db\Exception错
  4. Web自动化测试项目(三)用例的组织与运行
  5. CTF--HTTP服务--路径遍历(拿到www-data用户权限)
  6. Unreal Engine 4 蓝图完全学习教程(一)—— 简要介绍
  7. 深入理解JVM-类加载及类加载器
  8. Android头像更换之详细操作
  9. CCF_201604-4_游戏
  10. [github]添加fork me标识