本篇内容介绍了“Yarn Client和Yarn cluster有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1、先看看Yarn client的架构示意图
Yarn Client首先在Client端启动Driver,就是在Client端跑main函数了,这时候main函数所在的jar包还没提交给Yarn集群。SparkContext开始跑了,并且启动了YarnClientSchedulerBackend。然后YarnClientSchedulerBackend向Yarn提交申请执行ApplicationMaster(spark-yarn工程里的类),Yarn集群找到一台Container来执行ApplicationMaster,注意了:这里和yarn cluster的区别就是在Container上只启动ApplicationMaster,并不会启动Driver,因为已经启动过了。然后ApplicationMaster负责资源分配,调度Container来运行Executor,并且这些被调度启动的Executor是与Client端的Driver进行通信的。
2、再看看Yarn cluster的架构示意图
而Yarn cluster就简单的多了,Client端并不执行任何东西,将jar提交给Yarn集群,Yarn集群找到一台Container启动ApplicationMaster,这时候和yarn client的区别就来了,这时候ApplicationMaster会接着启动Driver,也就是说Driver和ApplicationMaster在同一个地方,然后ApplicationMaster进行调度启动的Executor也是同Driver通信,要注意的点就是这里的Driver和ApplicationMaster在同一个地方,运行在同一个进程内。
最后,Yarn client用于调试环境,而Yarn cluster用于生产环境。
“Yarn Client和Yarn cluster有什么作用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注天达云网站,小编将为大家输出更多高质量的实用文章!