Spark On Yarn原理

Spark On Yarn运行方式有两种,分别为client和cluster。本文主要阐述向Yarn提交Spark应用的流程以及一些重要的接口。

提交流程

下图是以client模式提交Spark应用时的流程,cluster模式下Spark的AM和Driver是同一进程,与此图描述会略有不同。

其中,黄色框表示的是Spark相关的组件,蓝色框表示的是Yarn相关的组件;NodeManager-A表示的是某个NodeManager进程A,NodeManager-B*CoarseGrainedExecutorBackend-E**表示会有多个相应的进程。

YarnAllocator

YarnAllocator负责向YARN ResourceManager请求容器资源,并决定以怎样的方式来使用这些容器资源,下面我们来了解一下这个类中比较重要的部分。

ExecutorRunnable

TODO

NOTEs

本文以Spark 2.4.3为基础。