Hadoop 2.7.1-Yarn 源码分析(二) Client 连接 ResourceManager

YARNRunner 被调度开始:
在这里插入图片描述
传入了一个 ResourceMgrDelegate,这个类负责与 ResourceManager 沟通:
在这里插入图片描述
首先看 createYarnClient 方法:
在这里插入图片描述
返回的是一个 YarnClientImpl 实例
接下来看 init() 方法:
在这里插入图片描述
我们可以看到 ResourceMgrDelegateAbstractService 的实现类:
在这里插入图片描述
这个 serviceInit(config) 最终在 ResourceMgrDelegate 中:
在这里插入图片描述
这里的 client.init(conf) 相当于 YarnClientImpl.init(conf), 至于为什么执行的是 YarnClientImpl.serviceInit(conf) ,这个你自己捋一捋,如下代码,主要是一些代码的初始化:
在这里插入图片描述
最后执行父类的 serviceInit,这里的父类就是 AbstractService在这里插入图片描述
在这里插入图片描述
接下来是 ResourceMgrDelegate#start()
在这里插入图片描述
在这里插入图片描述
这里的 client.start() 相当于 YarnClientImpl.start():
在这里插入图片描述
其中,ApplicationClientProtocol:

  • 客户端通过该协议向 ResourceManager 提交应用程序、控制应用程序(如杀死 job)以及查询应用程序的运行状态等。在该 RPC 协议中应用程序客户端充当 RPC client 角色,ResourceManager 充当 RPC server 角色。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39327985/article/details/89408653