1四、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,分为两种
一、client模式:主要用于测试
二、cluster模式:主要用于生产环境
不管是standalone、yarn,都是分为这两种模式:
一、standalone client、standalone cluster
二、yarn client、yarn cluster
 
client模式,区别就在于driver启动的位置,你在哪台机器上提交spark application,在那台机器上,就会启动driver进程,直接会去启动一个jvm进程,开始执行你的main类
cluster模式,spark application或者叫作spark做业,提交到cluster manager,cluster manager负责在集群中某个节点上,启动driver进程
 
cluster mode:集群模式,经常使用的有两种,standalone和yarn:
一、standalone模式,由Master进程和Worker进程,组成的集群
二、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就处理一小片数据
相关文章
相关标签/搜索