Hadoop中的RPC调用原理
来源:互联网 发布:win10软件弹窗太小 编辑:程序博客网 时间:2024/04/26 15:39
1. RPC(Remote Procedure Call Protocol)远程方法调用,客户端对服务端进行访问,服务端通过创建一个服务端的代理对象对服务端中的方法进行访问。要理解代理。
2.远程方法调用的实现有:webservice, hessian,RMI,但是他们与Hadoop的RPC的实现目的相同,都是通过客户端对服务端进行访问。
3. 工程进行建立后需要导入jar包
(1)E:\hadoop\hadoop-2.6.0\share\hadoop\common文件夹中的jar。
(2)E:\hadoop\hadoop-2.6.0\share\hadoop\common\lib文件夹中的jar
(3)E:\hadoop\hadoop-2.6.0\share\hadoop\hdfs文件夹中的jar
(4)E:\hadoop\hadoop-2.6.0\share\hadoop\hdfs\lib文件夹中的jar
5. 下面上代码来对整个过程进行理解。
客户端代码
package com.jn.hadoop.rpc;import java.io.IOException;import java.net.InetSocketAddress;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.ipc.RPC;public class RPCClient {/** * @param args * @throws IOException */public static void main(String[] args) throws IOException {//利用代理获取一个服务端代理RPCServer proxy = RPC.getProxy(RPCServer.class, 456435L, new InetSocketAddress("192.168.40.235", 9999),new Configuration());//调用接口sayHelloString result = proxy.sayHello("jiangning");System.out.println(result);}}
package com.jn.hadoop.rpc;/** * * @author jiangning *服务端接口 */public interface RPCServer {// 必须有这个versionID否则会报错public static final long versionID = 89899L;//接口,java的代理必须有接口public String sayHello(String name);}
package com.jn.hadoop.rpc;import java.io.IOException;import org.apache.hadoop.HadoopIllegalArgumentException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.ipc.RPC;import org.apache.hadoop.ipc.Server;/** * 服务端接口实现类 * @author jiangning * */public class RPCServerImpl implements RPCServer{public String sayHello(String name){return "goodluck " + name;}public static void main(String[] args) throws HadoopIllegalArgumentException, IOException {//获取Configuration对象Configuration conf = new Configuration();//创建服务端服务Server server = new RPC.Builder(conf).setProtocol(RPCServer.class).setInstance(new RPCServerImpl()).setBindAddress("192.168.40.235").setPort(9999).build();//启动服务server.start();}}
打包进行运行
客户端打包能够直接运行的jar
(1) 在工程上点击右键,选择Export
(2) 点击“RunnableJAR file”
(3) 选择Main方法的类。选择jar包生成的目录,选择“Extractrequired libraries into generated JAR” 点击“Finish”
完成。
将生成的jar包上传到Linux
执行下面命令:java -jar RPCClient.jar
0 0
- Hadoop中的RPC调用原理
- Hadoop RPC通信原理
- hadoop中的RPC, namenode和datanode通信原理
- 使用hadoop中的RPC框架实现远程调用
- RPC远程调用原理
- RPC 远程调用 原理
- RPC 远程调用原理
- Hadoop中的RPC实现
- Hadoop中的RPC
- 使用hadoop RPC实现RPC调用
- Hadoop的RPC通信原理
- Hadoop RPC机制-原理篇
- Hadoop Protobuf RPC 调用说明
- Hadoop中的RPC实现(概述)
- Hadoop中的RPC实现(概述)
- Hadoop中的RPC机制分析
- 使用Hadoop中的RPC框架
- hadoop的rpc同异步转换原理
- RDIFramework.NET ━ 9.15 个性化设置 ━ Web部分
- .NET的简单概览
- WHU-Problem 1152 - Feli 的糖果 寻找第K小数(计数排序,与快速排序)
- codeforces 234F - Fence
- LeetCode26:Median of Two Sorted Arrays
- Hadoop中的RPC调用原理
- 自定义缓存
- HDU2191(单调队列优化DP)
- windows 下 oracle rac 中的共享盘与磁盘的gpt分区格式
- 直接排序(固定长度数组)
- PHP 开启curl_init
- 【学习排序】 Learning to Rank 中Listwise关于ListNet算法讲解及实现
- Linux的文件和目录管理
- 【hibernate框架】核心开发接口-Configuration接口