14、Spark的核心术语

Application:spark应用程序,就是用户基于spark api开发的程序,一定是通过一个有main方法的类执行的,比如java开发spark,就是在eclipse中,建立的一个工程

Application Jar:这个就是把写好的spark工程,打包成一个jar包,其中包括了所有的第三方jar依赖包,比如java中,就用maven+assembly插件打包最方便

Driver Program:就是运行程序中main方法的进程,这就是driver,也叫driver进程

Cluster Manager:集群管理器,就是为每个spark application,在集群中调度和分配资源的组件,比如Spark Standalone、YARN、Mesos等

Deploy Mode:部署模式,无论是基于哪种集群管理器,spark作业部署或者运行模式,都分为两种,client和cluster,client模式下driver运行在提交spark作业的机器上,cluster模式下,运行在spark集群中

Worker Node:集群中的工作节点,能够运行executor进程,运行作业代码的节点

Executor    :集群管理器为application分配的进程,运行在worker节点上,负责执行作业的任务,并将数据保存在内存或磁盘中,每个application都有自己的executor

Job:每个spark application,根据你执行了多少次action操作,就会有多少个job

Stage:每个job都会划分为多个stage(阶段),每个stage都会有对应的一批task,分配到executor上去执行

Task    :driver发送到executor上执行的计算单元,每个task负责在一个阶段(stage),处理一小片数据,计算出对应的结果

deploy mode,分为两种

1、client模式:主要用于测试

2、cluster模式:主要用于生产环境

无论是standalone、yarn,都是分为这两种模式:

1、standalone client、standalone cluster

2、yarn client、yarn cluster

client模式,区别就在于driver启动的位置,你在哪台机器上提交spark application,在那台机器上,就会启动driver进程,直接会去启动一个jvm进程,开始执行你的main类

cluster模式,spark application或者叫做spark作业,提交到cluster manager,cluster manager负责在集群中某个节点上,启动driver进程

cluster mode:集群模式,常用的有两种,standalone和yarn:

1、standalone模式,由Master进程和Worker进程,组成的集群

2、yarn模式,由ResourceManager进程和NodeManager进程,组成的集群

standalone模式下,基于spark的Master进程和Worker进程组成的集群,Worker进程所在节点,也就是Worker节点

yarn模式下,yarn的nodemanager进程所在的节点,就是worker节点

job,作业,一个spark application / spark作业,可能会被分解为一个或者多个job,分解的标准,就是说你的spark代码中,用了几次action操作,就会有几个job

stage,阶段,每个job可能会被分解为一个或者多个stage,分解的标准,你在job的代码中,执行了几次shuffle操作(reduceByKey、groupByKey、countByKey),执行一次shuffle操作,job中就会有两个stage,如果一次shuffle都没执行,那就只有一个stage

task,任务,最小的计算单元,每个stage会对应一批task,具体的数量,是spark自动计算,根据底层的文件(hdfs、hive、本地文件)大小来划分,默认一个hdfs block对应一个task;也可以自己手动通过spark.default.parallelism参数来设置;每个task就处理一小片数据

时间: 2024-09-29 19:38:38

14、Spark的核心术语的相关文章

《深入理解SPARK:核心思想与源码分析》——SparkContext的初始化(中)

<深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析>一书第一章的内容请看链接<第1章 环境准备> <深入理解Spark:核心思想与源码分析>一书第二章的内容请看链接<第2章 SPARK设计理念与基本架构> 由于本书的第3章内容较多,所以打算分别开辟三篇随笔分别展现. <深入理解Spark:核心思想与源码分析>一

Spark的核心RDD(Resilient Distributed Datasets弹性分布式数据集)

Spark的核心RDD (Resilient Distributed Datasets弹性分布式数据集)  原文链接:http://www.cnblogs.com/yjd_hycf_space/p/7681585.html 铺垫 在hadoop中一个独立的计算,例如在一个迭代过程中,除可复制的文件系统(HDFS)外没有提供其他存储的概念,这就导致在网络上进行数据复制而增加了大量的消耗,而对于两个的MapReduce作业之间数据共享只有一个办法,就是将其写到一个稳定的外部存储系统,如分布式文件系统

Spark 以及 spark streaming 核心原理及实践

导语 spark 已经成为广告.报表以及推荐系统等大数据计算场景中首选系统,因效率高,易用以及通用性越来越得到大家的青睐,我自己最近半年在接触spark以及spark streaming之后,对spark技术的使用有一些自己的经验积累以及心得体会,在此分享给大家. 本文依次从spark生态,原理,基本概念,spark streaming原理及实践,还有spark调优以及环境搭建等方面进行介绍,希望对大家有所帮助. spark 生态及运行原理 Spark 特点 运行速度快 => Spark拥有DA

spark内核揭秘-01-spark内核核心术语解析

Application: Application是创建了SparkContext实例对象的spark用户,包含了Driver程序: Spark-shell是一个应用程序,因为spark-shell在启动的时候创建了一个SparkContext对象,其名称为sc: Job: 和Spark的action相对应,每一个action例如count.saveAsTextFile等都会对应一个job实例,该job实例包含多任务的并行计算. Driver Program: 运行main函数并且创建SparkC

Spark Streaming核心概念与编程

1. 核心概念 StreamingContext Create StreamingContext import org.apache.spark._ import org.apache.spark.streaming._ val conf = new SparkConf().setAppName(appName).setMaster(master) //Second(1) #表示处理的批次, 当前1秒处理一次 val ssc = new StreamingContext(conf, Second

spark 笔记 14: spark中的delay scheduling实现

延迟调度算法的实现是在TaskSetManager类中的,它通过将task存放在四个不同级别的hash表里,当有可用的资源时,resourceOffer函数的参数之一(maxLocality)就是这些资源的最大(或者最优)locality级别,如果存在task满足资源的locality,那从最优级别的hash表.也就是task和excutor都有loclity级别,如果能找到匹配的task,那从匹配的task中找一个最优的task. =====================延迟调度算法====

Spark RDD 核心总结

如何表示这样一个分区的,高效容错的而且能够持久化的分布式数据集呢?一般情况下抽象的RDD包含如下5大接口. 1)partition : 分区属性: 每个RDD包好多个分区, 这既是RDD的数据单位, 也是计算粒度, 每个分区在由一个Task线程处理. 在RDD创建的时候可以指定分区的个数, 如果没有指定, 那么, 默认分区的个数是CPU的核数. 每一块的分区对应一个内存上的block, 由BlockManager分配. Partition实现: partition 与 iterator 方法 R

14.spark mllib之快速入门

简介 ??MLlib是Spark提供提供机器学习的库,专为在集群上并行运行的情况而设计.MLlib包含很多机器学习算法,可在Spark支持的所有编程语言中使用. ??MLlib设计理念是将数据以RDD的形式表示,然后在分布式数据集上调用各种算法.其实,MLlib就是RDD上一系列可供调用的函数的集合. 数据类型 ??MLlib包含一些特有的数据类型,位于org.apache.spark.mllib包(Java/Scala)或pyspark.mllib(Python)中.主要的几个类有: Vect

第14课 计算器核心解析算法(下)

1. 中缀到后缀的手工转换 (1)按优先级给表达式加括号 (2)从内向外将运算符移动对应的括号后面 (3)去括号,即可得到后缀表达式(如下图,图中数字表示转换顺序) 2. 后缀表达式求值 2.1 图解后缀表达式求值过程 (1)从左向右扫描后缀表达式. (2)遇到数字直接进栈 (3)重点在于遇到运算符时,要找到其左右操作数.(此图中有5个运算符,分别是*./.-.*.+) 2.2 求值步骤(利用栈来进行运算,注意栈只用来保存操作数,并不保存操作符) (1)当前元素为数字:进栈 (2)当前元素为运算