
# Spark作业的Client模式和Cluster模式有什么区别？
理解YARN-Client和YARN-Cluster深层次的区别之前先清楚一个概念：Application Master。
在YARN中，每个Application实例都有一个ApplicationMaster进程，它是Application启动的第一个容器。它负责和ResourceManager打交道并请求资源，获取资源之后告诉NodeManager为其启动Container。从深层次的含义讲YARN-Cluster和YARN-Client模式的区别其实就是ApplicationMaster进程的区别。
YARN-Cluster模式下，Driver运行在AM(Application Master)中，它负责向YARN申请资源，并监督作业的运行状况。当用户提交了作业之后，就可以关掉Client，作业会继续在YARN上运行，因而YARN-Cluster模式不适合运行交互类型的作业。
YARN-Client模式下，Application Master仅仅向YARN请求Executor，Client会和请求的Container通信来调度工作，也就是说Client不能离开。
