Hadoop学习第九课(RPC)

上节课我们一起学习了如何将Hadoop与Java程序相结合,这节我们共同来学习RPC请求及应用。首先看一下RPC的定义及原理,如下图所示,我们也可以这样简单地理解RPC:RPC就是不同进程间的方法调用。

         接下来我们用Java程序和RPC相结合来更好的理解RPC。

       首先我们需要定义一个接口类,这个接口类需要由服务端来实现,如下图所示

         接下来我们定义RPCServer,如下图所示

          接下来我们来看一下RPCClient端代码,如下图所示


       怎么个玩法呢?首先我们启动RPCServer程序,接着我们再运行RPCClient端的main方法,我们会发现在控制台会输出Hi-tom的信息,说明我们客户端调用服务端内部的方法确实调用成功了!

       接下来我们来玩一下让Windows系统和Linux系统之间通过RPC协议通信,我们把RPCClient端打包成jar包,打包的过程如下图所示,打包第一步:在工程上右键,点击Export


       打包jar第二步:我们点击上图的Export之后会弹出如下窗口,我们选择Java下面的Runnable JAR file,然后点击下一步。如下图所示。


     打包jar第三步:我们进入如下图所示界面我们Launch configuration这一栏选择“RPCClient - Hadoop”,Export destination(打包到本地的地址)我把它打包到了我本地E盘的根目录下,起名为RPCClient.jar。然后点击Finish。


        我们把打好的jar包上传到Linux系统root目录下。我们在执行RPCClient.jar之前先启动RPCServer,并在sayHi方法中打断点。这样我们可以更明显的看到Linux上的客户端是否真的调用成功了Windows系统上的Server内的方法。

       启动完Server之后我们在Linux系统上执行RPCClient.jar,如下图所示,执行jar的命令是:java -jar RPCClient.jar,执行jar之后我们发现方法被卡住了,一直在等待返回结果。

        这时我们再来看一下Windows系统的Server端的断点情况,如下图所示,我们Linux系统运行Client之后确实调用到了服务端的sayHi方法!,Linux系统中之所以在等待返回结果,就是因为这里我们打了断点,这时我们让服务端的方法执行完。

          我们再反过来看一下Linux系统上是否有了返回值,我们发现这时信息当中打印出了Hi-tom的信息,说明Linux系统确实通过PRC协议实现了与Windows系统之间的连通!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值