hadoop ipc 创建

其实这个类似于java RMI

IPCServer建立,

public class IPCServer{
    public static final int IPC_PORT=9999;
    public static final long IPC_VER=88877;
    public static void main(String [] args)
    {
        try {
            //创建实现接口的功能实例
            IPCQueryStatusImpl is=new IPCQueryStatusImpl();
            //创建server对象,静态创建,参数包括实现的功能对象,监听地址,端口号,hadoop配置实例
            Server server = RPC.getServer(is,"0.0.0.0",IPC_PORT,new Configuration);//服务的创建,发布
            server.start(); //服务器开始服务函数
            server.stop();//服务器结束服务函数
        }
    }
}
IPCClient的创建
public class IPCQueryClient{
    public static void main(String [] args)
    {
        try{
            //得到socket地址包括ip和端口号;
            InetSocketAddress addr=new InetSocketAddress("localhost",
            IPCQueryServer.IPC_PORT);
            //类似于RMI的Naming.lookup()创建了代理类,初始化远程的接口,包括接口的类对象,服务版本号,socket地址,配置对象等
            IPCQUeryStatus q=(IPCQueryStatus)RPC.getProxy(IPCQueryStatus.class,
            IPCQueryServer.IPC_VER,addr,new Configuration);
            //然后通过代理类来实现远程方法的调用;
            IPCFilStatus status=q.getFileStatus("/testIPC");
            RPC.stopProxy(q);
        }
    }
}
其实和RMI没有太大区别,就多了个stop,start等,还有对于Server和Client的版本配对的问题其他差不多;

RMI使用的是Naming来注册绑定创建使用等,使用的是Naming.loolup()和Naming.bind(),Naming.registry()等;hadoop ipc使用的是RPC.getServer()注册创建,使用RPC.getProxy()来创建代理类,来本地调用远程方法;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值