首先对于cluster和client这两种模式我们要知道几个事
1、你如果是跑Hadoop自己的MapReduce,那么不必要讨论它是用的那种模式,因为MR运行可以说就是cluster
2、cluster和client这两个模式是yarn为其他框架提出的两种可供选择的运行模式,运行时Hadoop提供applicationmaster等用来进行资源调度的组件,至于任务的具体执行等具体细节是由不同框架自己的Driver决定的,和Hadoop集群没关系
3、于hadoop和其他的计算框架对比,我们所说的driver节点,在思路上家一定要清楚的知道不是一类东西,hadoop的driver主要有两个任务,一个是在任务提交的时候进行任务规划,另一个是在任务的进行中做一些合并等任务的善后操作,而其他框架的driver所以说就是我们手写的代码部分,本身比较独立和完善
Yarn-cluster模式提交作业后,applicationmaster和相应的Driver节点会按照原MapReduce执行原理中那样生成在一台集群中的机器上,适合生产环境
Yarn-client时,Driver节点会在你提交任务的那一台服务器的上产生,适合测试环境。
就spark为例,Spark on Yarn任务,其实就是Spark Driver在哪里运行、谁进行调度的区别
Yarn-cluster模式,Spark Driver运行在 Application Master所在的机器上,该机器是Spark集群中某个节点
Yarn-client模式,Spark Driver运行在 Client所在的机器,就是Spark提交任务的那台节点上