spark基本概念整理
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
spark基本概念整理的更多相关文章
- 【知识点】业务连接服务(BCS)认证概念整理
业务连接服务(BCS)认证概念整理 I. BDC认证模型 BDC服务支持两种认证模型:信任的子系统,模拟和代理. 在信任的子系统模型中,中间层(通常是Web服务器)通过一个固定的身份来向后端服务器取得 ...
- DNS,TCP,IP,HTTP,socket,Servlet概念整理
DNS,TCP,IP,HTTP,socket,Servlet概念整理 常见的协议虽然很容易理解,但是看了之后过一段时间不看还是容易忘,笔记如下,比较零碎,勉强供各位复习.如有错误欢迎指正. D ...
- 【Spark深入学习-11】Spark基本概念和运行模式
----本节内容------- 1.大数据基础 1.1大数据平台基本框架 1.2学习大数据的基础 1.3学习Spark的Hadoop基础 2.Hadoop生态基本介绍 2.1Hadoop生态组件介绍 ...
- IIS Web 服务器/ASP.NET 运行原理基本知识概念整理 转
转http://www.cnblogs.com/loongsoft/p/7272830.html IIS Web 服务器/ASP.NET 运行原理基本知识概念整理 前言: 记录 IIS 相 ...
- Spark 基本概念 & 安装
1. Spark 基本概念 1.0 官网 传送门 1.1 简介 Spark 是用于大规模数据处理的快如闪电的统一分析引擎. 1.2 速度 Spark 可以获得更高的性能,针对 batch 计算和流计算 ...
- AIFramework基本概念整理
AIFramework基本概念整理 本文介绍: 对天元 MegEngine 框架中的 Tensor, Operator, GradManager 等基本概念有一定的了解: 对深度学习中的前向传播.反向 ...
- spark基本概念
Client:客户端进程,负责提交作业到Master. Application:Spark Application的概念和Hadoop MapReduce中的类似,指的是用户编写的Spark应用程序, ...
- 西瓜书概念整理(chapter 1-2)
括号表示概念出现的其他页码, 如有兴趣协同整理,请到issue中认领章节 完整版见我的github:ahangchen 觉得还不错的话可以点个star ^_^ 第一章 绪论 Page2: 标记(lab ...
- IIS Web 服务器/ASP.NET 运行原理基本知识概念整理
前言: 记录 IIS 相关的笔记还是从公司笔试考核题开始的,问 Application Pool 与 AppDomain 的区别? 促使我对进程池进了知识的学习,所以记录一下学习 ...
随机推荐
- Easy C 编程 in Linux
入坑Ubuntu有4,5天了,当时各种不习惯,但现在渐渐喜欢上了这种简单大方的显示界面和快速高效的命令行模式,各种没有的功能也都有网页版,非常不错呢. 现在最让我感到神奇之处,便是Linux的C编程是 ...
- GitHub学习之路1
对于代码的管理以及维护上,GitHub不失为一个较为明智的选择.而对于GitHub的灵活应用也是相当重要的,以下记录为以防自己忘记. 1. 创建SSH Key ssh-keygen -t rsa –C ...
- python实例:从excel读取股票代码,爬取股票信息写到代码后面的单元格中
关键词:爬虫.python.request.接口.excel处理 思路: 1.首先准备好excel文档,把股票代码事先编辑进去. 2.脚本读取文档,依次读出股票代码到指定站点发起请求获取股票信息 3. ...
- json的结构和表示方式(对象object、数组array)
json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构 1.对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key ...
- linux开机无法进入桌面直接进入initramfs模式的问题修复
可能是因为关机异常导致磁盘错误. kali linux升级到2019.4版本之后出现过好几次异常关机导致直接进入initramfs的模式,无法进入系统桌面,网上的办法基本上也都是无效的,前几次翻了很多 ...
- java泛型梳理
java泛型梳理 概述 泛型,即参数化类型,是在JDK1.5之后才开始引入的. 所谓参数化类型是指所操作的数据类型在定义时被定义为一个参数,然后在使用时传入具体的类型. 这种参数类型可以用在类,接口, ...
- 使用typescript改造koa开发框架
强类型的 TypeScript 开发体验和维护项目上相比 JavaScript 有着明显的优势,那么对常用的脚手架进行改造也就势在必行了. 接下来开始对基于 koa 框架的 node 后端脚手架进行改 ...
- python 利用selenium爬取百度文库的word文章
今天学习如何使用selenium库来爬取百度文库里面的收费的word文档 from selenium import webdriver from selenium.webdriver.common.k ...
- DotNetty发送请求的最佳实践
长链接发送request/response时, 绝大部分包都是小包, 而每个小包都要消耗一个IP包, 成本大约是20-30us, 普通千兆网卡的pps大约是60Wpps, 所以想要提高长链接密集IO的 ...
- 【大白话系列】MySQL 学习总结 之 初步了解 MySQL Server 的 binlog 组件
一.上节回顾 上节我们讲到,建议将 redo log 的刷盘策略设置为1:即提交事务时,强制将 redo log buffer 里的 redo log 刷入到磁盘后才算事务提交成功. 但是我们都知道, ...