
Master和Worker是Spark的守护进程、集群资源管理者,即Spark在特定模式下正常运行所必须的进程。
Master和Worker 只有 Standalone模式中采用,所以Master和Worker是运行在集群模式中的。
Master 和 Worker 启动时机 随着集群的启动而启动,随着集群的停止而消失。

Driver和Executor是临时程序,当有具体任务提交到Spark集群才会开启的程序。
Driver 作用:
scala>sc.textFile("/opt/module/spark-local/input").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
res0: Array[(String, Int)] = Array((hadoop,6), (oozie,3), (spark,3), (hive,3), (atguigu,3), (hbase,6))Executor作用:
生命周期:
作用: Master和Worker:只有Standalone模式中才有。 Driver和Executor:Standalone模式和YARN模式 都有。
Standalone模式是Spark自带的资源调动引擎,构建一个由Master + Slave构成的Spark集群,Spark运行在集群中。
这个要和Hadoop中的Standalone区别开来。这里的Standalone是指只用Spark来搭建一个集群,不需要借助Hadoop的Yarn和Mesos等其他框架。
Spark有standalone-client和standalone-cluster两种模式,主要区别在于:Driver程序的运行节点。
该模式是由 --deploy-mode 所指定。
--deploy-mode client \or
--deploy-mode cluster \若指定,默认为client模式。
standalone client与cluster模式的区别: Driver所在的位置不一样
standalone-cluster模式:

1.提交程序
scala>sc.textFile("/opt/module/spark-local/input").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collectSparkSubmit进程
在提交程序的服务器上创建一个SparkSubmit进程,在SparkSubmit进程中也会有一个客户端Client,此时在客户端中并不会启动Driver。Driver
Client向Master 提交请求,找一个Worker启动Driver Driver
Master 根据任务的资源配置找到一个Worker启动Driver Driver计算任务时需要资源(如:需要多少个executor,每个executor需要多少内存),此时会向 Master申请资源。Worker
Master 并没有资源,但是它知道哪些Worker能满足Driver的条件。Executor
在资源充足的Worker中启动Executor,Executor启动好之后表示资源已经准备好了。Executor会向Driver发送反向请求, 告诉它,我准备好了,你把任务给我吧。Task到Executor中执行。
Driver会将Task提交到Executor中进行执行。Task执行完毕后,整个任务就执行完毕了,Driver向Master 提交申请注销自己。standalone-client模式:

SparkContext进程Client端,Driver便会在Client端中被创建。Client回向Master注册任务,申请资源.Master接收到请求之后,会根据spark-submit提交的资源参数筛选出合适的Worker Worker会运行一个Executor。Executor准备好之后,反向注册到Driver,申请任务。Driver便会把Job交给Executor进行运行。Driver等待所有的task运行完毕之后,此时便开始注销自己,释放资源。yarn-client模式

SparkContext进程Client端,Driver便会在Client端中被创建。Driver向ResuoreManager注册任务,申请运行ApplicationMaster。ResuoreManager收到请求之后,会找到一个NodeManager启动一个ApplicationMaster。ApplicationMaster向ResuoreManager申请资源。ResuoreManager将会筛选出合适的NodeManager列表给ApplicationMaster。ApplicationMaster会根据列表找到对应NodeManager,运行Executor,同时监听Executor的运行状态Executor会反向注册到Driver中,申请运行任务。Driver会将Job交给Executor进行运行。Task运行完毕之后,ApplicationMaster向ResuoreManager提交申请注销自己,释放资源。yarn-cluster模式

yarn-client模式 与 yarn-cluster模式 唯一的区别在于Dirver的运行位置不同。
在yarn-cluster模式中,Dirver将会运行在ApplicationMaster运行的服务器上。
SparkContext进程,该进程同样维护一个Client端。Client向ResuortManager注册任务,神奇运行ApplicationMaster。ResuortManager会找到一台NodeManager运行ApplicationMaster。ApplicationMaster会启动一个Driver进程。ApplicationMaster向ResuortManager申请资源。ResuortManager筛选合适的NodeManager列表给ApplicationMaster。ApplicationMaster根据列表找到对应的NodeManager运行Executor进程Executor反向注册到Driver中,申请任务Driver将Job交给Executor运行Driver中所有的Task任务运行完毕之后,ApplicationMaster向ResuortManager申请注销自己,释放资源。本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。