rpc实例

使用的是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的开发我慢慢传

 

你可能感兴趣的:(hadoop)