public void start() throws IOException { int rpcHandlerCount = conf.getInt(ProxyConfig.PROXY_HANDLER_COUNT, ProxyConfig.PROXY_HANDLER_COUNT_DEFAULT); RPC.setProtocolEngine(conf, ClientNamenodeProtocolPB.class, ProtobufRpcEngine.class); RPC.setProtocolEngine(conf, NamenodeProtocolPB.class, ProtobufRpcEngine.class); this.protocol = (ClientProtocol) Proxy.newProxyInstance( this.getClass().getClassLoader(), new Class[]{ClientProtocol.class}, this.invocationHandler); ClientNamenodeProtocolPB proxy = new ClientNamenodeProtocolServerSideTranslatorPB(this.protocol); BlockingService clientNNPbService = ClientNamenodeProtocolProtos.ClientNamenodeProtocol. newReflectiveBlockingService(proxy); int port = conf.getInt(ProxyConfig.RPC_PORT, ProxyConfig.RPC_PORT_DEFAULT); this.rpcServer = new RPC.Builder(conf) .setProtocol(org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolPB.class) .setInstance(clientNNPbService).setBindAddress("0.0.0.0") .setPort(port).setNumHandlers(rpcHandlerCount) .setVerbose(false).build(); this.rpcServer.start(); InetSocketAddress listenAddr = rpcServer.getListenerAddress(); rpcAddress = new InetSocketAddress("0.0.0.0", listenAddr.getPort()); }