zoukankan      html  css  js  c++  java
  • hadoop 2.0 中的两种RPC详解

    Hadoop 2.0中存在两个ipc包, 分别为hadoop RPC和新的YarnRPC, 本文简要描述了两种RPC.

    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中各个进程使用的协议.

    PZM~{(O6073A2AF(QM2P@@3

    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

  • 相关阅读:
    JVM的学习5_____垃圾回收:分代收集算法
    JVM的学习4____GC的作用和垃圾的标记
    JVM的学习3_____逃逸分析与栈上分配
    JVM的学习2____对象实例的内存分配原理
    JVM的学习1_____内存模型
    SpringMVC的学习____6.JSON 和Ajax
    两种方法关联控制器和DOM
    img的src,a的href使用{{}}设置属性不能生效
    ng之{{value}}顺序
    ng之ng-app指令
  • 原文地址:https://www.cnblogs.com/shenh062326/p/YRRN_RPC.html
Copyright © 2011-2022 走看看