我们在学习Flink这个主流计算框架的过程中,肯定知道在基于yarn进行资源调度的时候,有两种常用的提交流程,一种是session,一种是per-job模式。让我们通过下文的阅读看看他们之间有什么区别吧。
一、YARN
Yet Another Resource Negotiator简称YARN ,另一种资源协调者,是Hadoop的资源管理器。
说到yarn,我们肯定要说一下yarn的几个组件,以及他们的作用:
Container
容器(Container)这个东西是 Yarn 对资源做的一层抽象。就像我们平时开发过程中,经常需要对底层一些东西进行封装,只提供给上层一个调用接口一样,Yarn 对资源的管理也是用到了这种思想。
如上所示,Yarn 将CPU核数,内存这些计算资源都封装成为一个个的容器(Container)。需要注意两点:
1. 容器由 NodeManager 启动和管理,并被它所监控。
2.容器被 ResourceManager 进行调度。
ResourceManager
从名字上我们就能知道这个组件是负责资源管理的,整个系统有且只有一个 RM ,来负责资源的调度。它也包含了两个主要的组件:定时调用器(Scheduler)以及应用管理器(ApplicationManager)。