Hadoop的RPC通信------>java实现

一 、服务端编写

(1)RPCServer类 

public class RPCServer implements Bizable{

    public  String sayHi(String name){
        return "Hi~"+name;
    }

    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        RPC.Server server = new RPC.Builder(conf)
                .setProtocol(Bizable.class)
                .setInstance(new RPCServer())
                .setBindAddress("192.168.19.10")
                .setPort(9527)
                .build();
        server.start();
    }
}

(2)Bizable接口

public interface Bizable {
    public static final long versionID=10010L;
    public String sayHi(String name);
}

二 、客户端编写

public class RPCClient {
    public static void main(String[] args) throws Exception {
        Bizable proxy = RPC.getProxy(Bizable.class, 10010L, new InetSocketAddress("192.168.19.10", 9527),
                new Configuration());
        String result = proxy.sayHi("小虹尘");
        System.out.println("==============================================================");
        System.out.println(result);
        System.out.println("==============================================================");
        RPC.stopProxy(proxy);
    }
}

三 、 测试

(1)本地客户端与服务端通信

   运行RPCServer类------>运行RPCClient类 ,运行结果如图:

  

(2)虚拟机与本机通信

  

使用idea软件打可运行的Jar包

     File------>Project Structure------>Artifacts------> + ------>Jar------>From Module And Dependences



------>Main Class------>RPCClient------>Copy to the output directory and link via manifest

              

------>Apply------>OK

  【2】将打好的文件../out/artifacts/hadoop_jar_jar上传到虚拟机下

  【3】在主机,运行本地的RPCServer类

  【4】进入到hadoop_jar_jar目录下

     cd hadoop_jar_jar

     运行jar包 java -jar 包名

     例如:java -jar hadopp_jar.jar


发布了35 篇原创文章 · 获赞 11 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章