YARN 各种RPC通信协议及它们的作用介绍 博客分类: Hadoop Hadoop
程序员文章站
2024-03-18 08:19:40
...
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运行情况。
<ignore_js_op style="word-wrap: break-word;">
为了提高Hadoop的向后兼容性和不同版本之间的兼容性,YARN中的序列化框架采用了Google开源的Protocol Buffers。Protocol Buffers的引入使得YARN具有协议向后兼容性,相关内容将在第3章介绍。