Hello, There are two different kinds of RPC engine: RPC_WRITABLE & RPC_PROTOCOL_BUFFER In the NameNode side, the class NameNodeRpcServer is used to handle RPC calls from client and DataNode.
But I see in the constructor function public NameNodeRpcServer(Configuration conf, NameNode nn) throws IOException { .......... this.clientRpcServer = RPC.getServer( org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolPB.class, clientNNPbService, socAddr.getHostName(), socAddr.getPort(), handlerCount, false, conf, namesystem.getDelegationTokenSecretManager()); ........... } Inside this function there are only protocolPB implementation in the construction of RPC.Server, I can not see the WritableRpcEngine implementation. And when I trace into the class WritableRpcInvoker, it is the absolutely invoke function. I meat that { ................ protocolImpl = server.getProtocolImplMap(RpcKind.RPC_WRITABLE).get(pv); ................ } I don't know which is the protcolImpl of RPC_WRITABLE, in the constructor function only the implementation of RPC_PROTOCOL_BUFFER is created. Anyone can give me some suggestion or advice? Thank you Eric