博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop RPC简单实例
阅读量:4613 次
发布时间:2019-06-09

本文共 2105 字,大约阅读时间需要 7 分钟。

1、导入Hadoop-Common-2.6.0.jar导入工程,里面的IPC实现RPC需要的文件。

2、服务器端

 (1)服务接口
package com.neu.rpc.server;/** * Created by apple on 16/6/26. */public interface LoginServiceInterface {    public static final long versionID = 1L;    public String login(String username, String password);}

(2)服务实现

package com.neu.rpc.server;/** * Created by apple on 16/6/26. */public class LoginServiceImpl implements LoginServiceInterface {    @Override    public String login(String username, String password) {        return username + " login success";    }}

(3)RPC服务端,将上述服务进行发布,监控RPC客户端发来的请求

package com.neu.rpc.server;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.ipc.RPC;import java.io.IOException;/** * Created by apple on 16/6/26. */public class Starter {    public static void main(String[] args) throws IOException {        RPC.Builder build = new RPC.Builder(new Configuration());        build.setBindAddress("localhost").setPort(10000).setProtocol(LoginServiceInterface.class).setInstance(new LoginServiceImpl());        RPC.Server server = build.build();        server.start();    }}

 

3、客户端

 (1)RPC服务接口【
问题:因为服务协议是包名加类名,因此客户端的服务接口的包名要与服务端接口的包名一致
package com.neu.rpc.server;/** * Created by apple on 16/6/26. */public interface LoginServiceInterface {    public static final long versionID = 1L;    public String login(String username, String password);}

(2)RPC客户端请求服务

public class LoginController {    public static void main(String[] args) throws IOException {        LoginServiceInterface proxy= RPC.getProxy(LoginServiceInterface.class,1L,new InetSocketAddress("localhost",10000),new Configuration());        String msg=proxy.login("xiaoming","123123");        System.out.println(msg);    }}

4、实验结果

com.intellij.rt.execution.application.AppMain com.neu.rpc.client.LoginController2016-06-28 00:23:36,542 WARN  [main] util.NativeCodeLoader (NativeCodeLoader.java:
(62)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicablexiaoming login successProcess finished with exit code 0

  

 

转载于:https://www.cnblogs.com/arbitrary/p/5621987.html

你可能感兴趣的文章
html5 Canvas绘制时钟以及绘制运动的圆
查看>>
云推送注意(MSDN链接)
查看>>
Metro Style app :浏览器扩展
查看>>
linux的kernel是怎样工作的(TI_DM36X_ARM系统)(1)
查看>>
[luogu4310] 绝世好题 (递推)
查看>>
[luogu3203 HNOI2010] 弹飞绵羊 (分块)
查看>>
mui搜索框 搜索点击事件
查看>>
2016012003+陈琦+散列函数的应用及其安全性
查看>>
Android 状态栏通知Notification、NotificationManager详解
查看>>
UIApplicationDelegate协议
查看>>
Jmeter测试dubbo接口填坑
查看>>
[zz]GDB调试精粹及使用实例
查看>>
数据库的创建和删除
查看>>
最简单的三层实例【插入据
查看>>
设计模式学习笔记——Prototype原型模式
查看>>
pom.xml里有红叉报错的解决办法
查看>>
Perl last和next的用法区别
查看>>
Selenium 管理 Cookies
查看>>
exceptionfunction[LeetCode]Permutations
查看>>
bzoj 4595 激光发生器
查看>>