Yarn源码分析-通信协议(1)

image-20230214165153734

​ Yarn 通信协议是连接各个组件的连接器,将 客户端、ResouceManager、ApplicationMaster、NodeManager 连接起来,采用 pull-based 方式连接,即客户端主动向服务端拉取对应的信息,比如 ApplicationMaster 与 ResourceManager 的心跳等,Yarn 通信包含五大协议,分别如下

  1. ApplicationClientProtocol

    客户端与 ResouceManager 通信,端口号为 8032,客户端利用该通信协议与 ResouceManager 的 ClientRMService 通信,创建新的 Application、提交 Application、查询集群信息、查询队列信息、查询应用程序状态、杀死应用程序等,使用 yarn 命令进行客户端操作均通过该协议

  2. ResouceManagerAdminnistrtionProtocol

    管理员与 ResouceManager 通信,管理员通过该通信协议管理集群(yarn admin xxxx),将客户端与管理员通信协议分开的原因是避免客户端请求太多管理员的请求无法及时处理导致集群出问题

  3. ResourceTracker

    NodeManager 与 ResouceManager 通信,端口号为 8031,NodeManager 通过该通信协议向 ResouceManager 的 ResourceTrackerService 注册、报告心跳(心跳中包含当前节点运行的 Container 运行情况)等

  4. ApplicationMasterProtocol

    ApplicationMaster 与 ResouceManager 通信,端口号为 8030,ApplicationMaster 通过该通信协议向 ResouceManager 的 ApplicationMasterService 注册自己、上报心跳(心跳响应中包含了当前 App Container 运行情况,以及分配的 Container 信息)等

  5. ContainerManagerProtocol

    ApplicationMaster 与 NodeManager 通信,端口号不定,不同的 NodeManager 端口号不同,ApplicationMaster 通过该通信协议请求 NodeManager 启动 Container,获取 Container 运行情况

© 2022 - 2023 Jayden. All rights reserved. Powered by Jayden.