SparkSPARK

Spark的不同ClusterManger提交任务的执行流程

2019-06-12  本文已影响1人  叫我不矜持

前言

了解Spark架构原理及相关任务提交流程前,我们需要先了解一下Spark中的一些角色概念。

一.Standalone-Client方式提交任务方式

提交命令
spark-submit  --master spark://node001:7077,node002:7077 --deploy-mode client --class org.apache.spark.examples.SparkPi ../examples/jars/spark examples_2.11-2.3.1.jar  10000

执行原理图
standalone-client模式
执行流程
缺点

client模式适用于测试调试程序。Driver进程是在客户端启动的,这里的客户端就是指提交应用程序的当前节点。在Driver端可以看到task执行的情况。生产环境下不能使用client模式,因为Driver可能会回收task执行结果数据,假设要提交100个application到集群运行,Driver每次都会在client端启动,那么就会导致客户端所在节点的Driver收集100个application的结果数据,导致100次网卡流量暴增的问题。

二.Standalone-Cluster方式提交任务方式

提交命令
spark-submit  --master spark://node001:7077,node002:7077 --deploy-mode cluster --class org.apache.spark.examples.SparkPi ../examples/jars/spark examples_2.11-2.3.1.jar  10000

执行原理图
standalone-cluster模式
执行流程
总结

Driver进程是在集群某一台Worker上启动的,在客户端是无法查看task的执行情况的。假设要提交100个application到集群运行,每次Driver会随机在集群中某一台Worker上启动,那么这100次网卡流量暴增的问题就散布在集群上。

三.Yarn-Client方式提交任务方式

提交命令
spark-submit  --master yarn --deploy-mode client --class org.apache.spark.examples.SparkPi ../examples/jars/spark examples_2.11-2.3.1.jar  10000
执行原理图
yarn-client模式
执行流程
总结

Yarn-Client模式同样是适用于测试,因为Driver运行在本地,Driver会与yarn集群中的Executor进行大量的通信,会造成客户机网卡流量的大量增加。

Yarn-Client模式下ApplicationMaster的作用:

四.Yarn-Cluster方式提交任务方式

提交命令
spark-submit  --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi ../examples/jars/spark examples_2.11-2.3.1.jar  10000

执行原理图
yarn-cluster模式
执行流程
总结

Yarn-Cluster主要用于生产环境中,因为Driver运行在Yarn集群中某一台nodeManager中,每次提交任务的Driver所在的机器都是随机的,不会产生某一台机器网卡流量激增的现象,缺点是任务提交后不能看到日志。只能通过yarn查看日志。

Yarn-Cluster模式下ApplicationMaster的作用:

停止集群任务命令:yarn application -kill applicationID

上一篇 下一篇

猜你喜欢

热点阅读