在hadoop2.4.0的RPC类中找不到getServer这个方法,下面这个链接是详细的问题所在
http://blog.itpub.net/29876573/viewspace-1813631/。
那么在hadoop2.4.0环境下如何构建RPC服务端呢。
-
Server server = new RPC.Builder(new Configuration()).setProtocol(Myinterface.class)
-
.setInstance(new MyinterfaceImpl()).setBindAddress(ADDRESS).setPort(1234)
-
.setNumHandlers(5).build();
-
server.start();
-
}
上面的代码中setProtocol()中的参数
Myinterface是自己定义并继承了VersionedProtocol接口的接口,
setInstance()中的参数是实现了
Myinterface的类,
setBindAddress()中的参数是服务器的ip地址或主机名,setPort()中设置的服务器的端口号。
这样RPC Server端便实现了。
对于RPC的学习,吴超老师总结的几点真的很好:
1.RPC是一个远程过程调用
2.客户端调用服务端的方法,意味着调用服务端的对象中的方法
3.如果服务器端的对象允许客户端调用,那么这个对象必须实现接口
4.如果客户端能够调用到服务端对象的方法,那么这些方法一定位于对象的接口中
昨天纠结了很长时间的这个问题解决了,真心感谢朋友和前辈的指点。感谢http://book.51cto.com/art/201312/422043.htm的作者。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29876573/viewspace-1813654/
,如需转载,请注明出处,否则将追究法律责任。