hadoop中RPC的使用方法---DEMO
2007-11-24 17:28
489 查看
TEAM : I.S.T.O
AUTHOR : Jerry
hadoop其实不难 不过部署起来不太容易!毕竟是分布式 这里简单写了一个demo 其实很早就写了 原来文地址
http://hi.baidu.com/zhyhongyuan/blog/item/1906368127ddc6dabd3e1ef0.html
明明是RPC 转的人看都不看就写为IPC 无语...
看看啥时候分布式也出安全隐患了~ 叫上KJ一起研究~呵呵
public class UseRPC {
//hadoop配置信息
private static Configuration conf=new Configuration();
//定义接口
public interface Serverif{
public String method(String args);
}
//服务器端的实现
public static class ServerImpl implements Serverif{
//业务逻辑的实现
public String method(String args){
return args;
}
}
public static void main(String args[]) throws Exception {
ServerImpl si = new ServerImpl();
int port=8668;
org.apache.hadoop.ipc.Server server = RPC.getServer(si, port, 10, true,conf);
server.start();
server.join();
}
//客户端的实现
public static class Client {
private static final Method GETTASK;
//利用代理的方式调用,如果通过代理方式,服务器只能有一个
public String method_proxy(String args) throws Exception{
InetSocketAddress sa=new InetSocketAddress("192.168.1.1",8668);
Serverif si=(Serverif) RPC.getProxy(Serverif.class, sa, conf);
return si.method(args);
}
//利用反射的方式调用,如果通过反射方式,服务器可以有多个,
//参数为一个二维数据,相对应每个服务器的方法
public String method_reflected(String args) throws Exception{
InetSocketAddress[] sa=new InetSocketAddress[]{
new InetSocketAddress("192.168.1.1",8668),
new InetSocketAddress("192.168.1.2",8668)};
Object[][] params = new Object[2][1];
params[0][0]=String.class;
params[1][0]=String.class;
//得方法的反射
METHOD = Serverif.class.getMethod("method", new Class[] {String.class});
return (String)RPC.call(METHOD, params, sa, conf);
}
public static void main(String args[]) throws Exception {
String remoteIP="192.168.1.1";
int port=8668;
Client c=new Client();
System.out.println(c.method_proxy("hello world"));
}
}
}
相关文章推荐
- Hadoop RPC使用方法(1)
- DistributedCache的使用方法(hadoop0.20.2)
- Hadoop RPC机制的使用
- 在使用windows调用Hadoop 错误 /bin/bash: line 0: fg: no job control一般解决方法[将windows中的任务提交到linux中出错]
- Hadoop使用常见问题以及解决方法
- Hadoop使用常见问题以及解决方法
- Hadoop使用常见问题以及解决方法
- Hadoop DistributedCache使用方法及原理
- Hadoop DistributedCache使用方法及原理
- 使用Windows下的intellij IDEA 运行MapReduce程序远程调用Hadoop的hdfs(非Maven方法)
- Hadoop streaming mapreduce多文件输入使用方法
- Hadoop 学习之RPC的使用与实现原理
- Hadoop使用常见问题以及解决方法
- Hadoop学习笔记—3.Hadoop RPC机制的使用
- APIDemo学习笔记——Android上几种简单的Animation使用方法(二)
- rpc使用JUnit模块测试设计的方法及常见问题
- Swift基础之init方法,实例(对象)方法,类(静态)方法的使用(多标签Demo)
- Android开发-Volley-解析Json使用方法-3-完整Demo-AndroidStudio
- Hadoop使用常见问题以及解决方法
- hadoop fsck 使用方法