spark on yarn部署模式——yarn-client和yarn-cluster

一、yarn-cluster

与standalone模式不同,yarn-cluster是基于yarn集群,yarn集群上有ResourceManager(RM)和NodeManager(NM)。

spark on yarn部署模式——yarn-client和yarn-cluster_第1张图片

1、发送请求到RM,请求启动AM

2、RM会分配container,在某个NM上启动AM

3、AM启动后,和RM通讯,请求container来启动executor

4、RM会给AM提供一批container用于启动executor

5、AM连接其他NM启动executor

6、executor启动后向AM反向注册

 

二、yarn-client

spark on yarn部署模式——yarn-client和yarn-cluster_第2张图片

从上图可以看出,yarn-client和yarn-cluster的区别就在于,Driver是运行在本地客户端,它的AM只是作为一个Executor启动器,并没有Driver进程。

看到这里,开头为什么说yarn-client用于测试环境调试程序;yarn-cluster用于生产环境就清楚了。

1、yarn-client,driver运行在本地客户端,负责调度Application,会与yarn集群产生大量的网络通信,从而导致网卡流量激增。好处是,执行时可以在本地看到所有的log,便于调试。所以一般用于测试环境。

2、yarn-cluster,driver运行在NodeManager,每次运行都是随机分配到NM机器上去,不会有网卡流量激增的问题。缺点就是本地提交后看不到log,只能通过yarn application-logs application id命令来查看。比较麻烦。
 

转载自:yarn-cluster和yarn-client模式剖析

参考:Running Spark on YARN doc

There are two deploy modes that can be used to launch Spark applications on YARN. In cluster mode, the Spark driver runs inside an application master process which is managed by YARN on the cluster, and the client can go away after initiating the application. In client mode, the driver runs in the client process, and the application master is only used for requesting resources from YARN.

你可能感兴趣的:(Yarn)