分享

YARN 各种RPC通信协议及它们的作用介绍

问题导读:
1.在YARN中,任何两个组件通信,通过什么协议?
2.JobClient(作业提交客户端)与RM之间的协议是什么?
3.Admin通过该RPC协议更新系统配置文件来完成什么内容?
4.AM通过该RPC协议来完成什么事情?
5.那个组件通过RPC协议向RM注册,并定时发送心跳信息汇报当前节点的资源使用情况和Container运行情况?




RPC协议是连接各个组件的“大动脉”,了解不同组件之间的RPC协议有助于我们更深入地学习YARN框架。
在YARN中,任何两个需相互通信的组件之间仅有一个RPC协议,而对于任何一个RPC协议,通信双方有一端是Client,另一端为Server,且Client总是主动连接Server的,因此,YARN实际上采用的是拉式(pull-based)通信模型。如图2-10所示,箭头指向的组件是RPC Server,而箭头尾部的组件是RPC Client,


YARN主要由以下几个RPC协议组成:

JobClient(作业提交客户端)与RM之间的协议ApplicationClientProtocol:JobClient通过该RPC协议提交应用程序、查询应用程序状态等。

Admin(管理员)与RM之间的通信协议ResourceManagerAdministrationProtocol:Admin通过该RPC协议更新系统配置文件,比如节点黑白名单、用户队列权限等。
AM与RM之间的协议ApplicationMasterProtocol:AM通过该RPC协议向RM注册和撤销自己,并为各个任务申请资源。
AM与NM之间的协议ContainerManagementProtocol:AM通过该RPC要求NM启动或者停止Container,获取各个Container的使用状态等信息。
NM与RM之间的协议ResourceTracker:NM通过该RPC协议向RM注册,并定时发送心跳信息汇报当前节点的资源使用情况和Container运行情况。

1.jpg


为了提高Hadoop的向后兼容性和不同版本之间的兼容性,YARN中的序列化框架采用了Google开源的Protocol Buffers。Protocol Buffers的引入使得YARN具有协议向后兼容性,相关内容将在第3章介绍。





加微信w3aboutyun,可拉入技术爱好者群

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条