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为基础。