协议:
package com.ltn.day01.test01; public interface ClientProtocol { long versionID = 1234L; void makedir(String path); }
服务端:
package com.ltn.day01.test01; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.ipc.Server; import org.apache.hadoop.ipc.RPC; import java.io.IOException; public class NameNodeRPCServer implements ClientProtocol { public void makedir(String path) { System.out.println("Server do makedir :"+path); } public static void main(String[] args) throws IOException { Server server =new RPC.Builder(new Configuration()) .setBindAddress("localhost") .setPort(9999) .setProtocol(ClientProtocol.class) .setInstance(new NameNodeRPCServer()) .build(); System.out.println("服务端启动了。"); server.start(); } } 客户端:
package com.ltn.day01.test01; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.ipc.RPC; import java.io.IOException; import java.net.InetSocketAddress; public class LtnClient { public static void main(String[] args) throws IOException { ClientProtocol namenode = RPC.getProxy(ClientProtocol.class, ClientProtocol.versionID, new InetSocketAddress("localhost",9999), new Configuration()); System.out.println("客户端启动了"); namenode.makedir("/ltn"); } }
启动