deploy mode,分为两种
1、client模式:主要用于测试
2、cluster模式:主要用于生产环境
无论是standalone、yarn,都是分为这两种模式的
standalone client、standalone cluster
yarn client
、
yarn cluster
standalone
模式下,基于
spark
的
Master
进程和
Worker
进程组成的集群,
Worker
进程所在节点,也就是
Worker
节点
yarn
模式下,
基于
yarn
ResourceManager
进程和
NodeManager
进程,组成的集群,
yarn
的
nodemanager
进程所在的节点,也就叫做
worker node
,工作节点
client
模式,区别就在于
driver
启动的位置,你在哪台机器上提交
spark application
,在那台机器上,就会启动
driver
进程,直接会去启动一个
jvm
进程,开始执行你的
main
类
cluster
模式,
spark application
或者叫做
spark
作业,提交到
cluster manager
,
cluster manager
负责在集群中某个节点上,启动
driver
进程
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
就处理一小片数据