Hi guys,
I am trying to do some changes in the YARN code. Through other things, I am 
trying to instantiate a Server and a Client which communicate via RPC. 

To do that, I did the following:
1. I created a proto file where I describe the messages and the service 
2. I create a server class with implements the .Interface from the generated 
service class (I don't know a blocking interface)This class also defines a 
Server server class, which I instantiate as following:server = new 
RPC.Builder(conf).setProtocol(MyProtocolPB.class).setInstance(this).setBindAddress(...).setPort(...).build()server.start()

3. I create a client which tries to connect to server as following:
RPC.setProtocolEngine(conf, MyProtocolPB.class, 
ProtobufRpcEngine.class)InetSocketAddress addr = new 
InetSocketAddress(IP_SERVER, PORT_SERVER)
proxy = RPC.getProxy(MyProtocolPB.class, 1L, addr, conf) 

Then I call the remote methods at the server with proxy.method(.....)

However, when I start running the code, it throws the following 
exception:Service f2_service failed in state STARTED; cause: 
java.lang.RuntimeException: java.lang.NoSuchFieldException: versionID
java.lang.RuntimeException: java.lang.NoSuchFieldException: versionID

On the other hand, I also see this:Interface interface 
org.apache.hadoop.yarn.proto.F2DSProtocol$F2DSProtocolService$Interface ignored 
because it does not extend VersionedProtocol
where F2DSProtocol is the generated source file based on my proto. 

Do you guys have any idea where I am wrong with my creation of the 
client/server or can you point me to some examples in the yarn code which does 
that?
I was looking at various files, but I am still confused what is wrong with my 
approach.
Thanks in advance,Robert

Reply via email to