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

Reply via email to