您的位置:首页 > 运维架构

Hadoop 2.0的两种RPC

2016-07-17 11:12 183 查看
Hadoop 2.0中存在两个ipc包, 分别在hadoop-common和hadoop-yarncommon项目下. 分别为hadoop RPC和新的YarnRPC.

1. 使用hadoop ipc包的协议

原有的协议
协议名
客户端
服务端
主要方法
ClientProtocol
Client
Namenode
 
DatanodeProtocol
DN
NN
 
NamenodeProtocol
SNN
NN
 
RefreshAuthorizationPolicyProtocol
Client
NN
 
RefreshUserMappingsProtocol
Client
NN
 
GetUserMappingsProtocol
Client
NN
 
TaskUmbilicalProtocol
YarnChild(运行task的containner)
AM
状态更新, 获取map结束事件等
2. 使用YarnRPC的协议

这些都是用在yarn上的协议, 并且都是0.23开始新增的协议.
协议名
客户端
服务端
主要方法
ClientRMProtocol
Client
RM
提交,查询,kill AM等
AMRMProtocol
AM
RM
注册, 结束AM, 请求资源
ContainerManager
AM
NM
启动, 停止, 查询 container
RMAdminProtocol
Client
RM
刷新node, queu, acl等
HSClientProtocol
Client
HistoryServer
继承于MRClientProtocol
MRClientProtocol
Client
AM
获取job/task信息, kill job/task等
下图显示了yarn中各个进程使用的协议.





3. 为什么要新增YarnRPC呢

事实上, YarnRPC只是封装了hadoop-common的ipc, 最终还是使用了hadoop-common的ipc包, 包括server和client, 所以底层的网络通信方法是一样的.

新增的协议都使用了YarnRPC包,

至于底层使用何种序列化方式, 可以通过配置决定:

yarnRPC的底层序列化方式: yarn. ipc. serializer.type 默认为protocolbuffers

hadoop-common RPC的序列化方式: rpc.engine.( protocol.getName()) 默认为WritableRpcEngine

原文链接:http://www.cnblogs.com/shenh062326/archive/2012/12/16/YRRN_RPC.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: