Datanode要向Namenode发送请求,希望得到一个字符串应答。假设Namenode的地址是127.0.0.1:9000
一、配置文件
org.apache.hadoop.conf. Configuration;对应的配置文件是core-site.xml。配置项以key-value的形式存储。
二、用户需要自己定义一个协议接口来封装所有客户端向服务端发送的请求,该接口必须继承自org.apache.hadoop.ipc.VersionedProtocol。接口中的versionID用来标识不同的协议。
三、Namenode端。调用方需要getServer得到一个RPC服务端。指定协议的实例,在指定的地址和端口上启动服务。
private void jion() throws InterruptedException {
rpcServer.join();//while()wait();
}
public static void main(String[] args) throws Exception {
Namenode namenode = new Namenode();
if (namenode != null){
namenode.start();
namenode.jion();
}
}
}
四、Datanode getProxy得到一个RPC客户端。getProxy方法会使用动态代理,创建一个指定服务端的代理。一个远程对象需要建立一个代理。
五、运行Namenode
六、运行Datanode
This is a remote call......