使用的是hadoop2.7.3,csdn上有这个版本,我没传上来。大家自己下载,JDK8。那些jar包我就不贴了,太多了。反正都导进去就对了。
RPCServer类
package cn.itcast.hadoop.rpc;
import java.io.IOException;
import org.apache.hadoop.HadoopIllegalArgumentException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.ipc.RPC;
import org.apache.hadoop.ipc.Server;
public class RPCServer implements Bizable {
public String sayHi(String name){
return "hello:"+name;
}
public static void main(String[] args) throws Exception{
Configuration conf = new Configuration();
Server server = new RPC.Builder(conf).setProtocol(Bizable.class).setInstance(new RPCServer()).setBindAddress("192.168.8.3").setPort(9728).build();
server.start();
}
}
RPCClient类
package cn.itcast.hadoop.rpc;
import java.io.IOException;
import java.net.InetSocketAddress;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.ipc.RPC;
public class RPCClient {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
Bizable proxy = RPC.getProxy(Bizable.class, 10010, new InetSocketAddress("192.168.8.3",9728), new Configuration());
String result = proxy.sayHi("tomcat");
System.out.println(result);
RPC.stopProxy(proxy);
}
}
Bizable类
package cn.itcast.hadoop.rpc;
public interface Bizable {
public static final long versionID=10010;
public String sayHi(String name);
}
稍微解释下:
192.168.8.3是我windows机器的ip,是跟我虚拟机互连的ip,我虚拟机的ip是192.168.8.2。版本是centos6.5.其中的9728是端口号,这个无所谓,只要不是用到的就好。
rpcclient调用rpcserver类的方法sayHi。具体是这样,先运行rpcserver类,启动服务。然后运行client类执行看结果。或者你把这个工程打包放到虚拟机上。在windows上运行server类,在虚拟机上运行client类。我运行成功了。记得打包成jarfile。
忘记了:hadoop好像也要启动起来。hadoop的开发我慢慢传