踏着前人的脚印学Hadoop——RPC源码
A simple RPC mechanism.A protocol is a Java interface. All parameters and return types must be one of:a primitive type(这个注意是9个基本类型,包括void),a String ; or a Writable or an array of the above types All methods in the protocol should throw only IOException. No field data of the protocol instance is transmitted.
1、这个RPC有5个内部类。
分别是ClientCache,Invocation,Invoker,Server,VersionMismatch。
更奇葩的是它的构造器是私有的。
2、Invocation
A method invocation, including the method name and its parameters
private String methodName;
private Class[] parameterClasses;
private Object[] parameters;
private Configuration conf;
3、ClientCache
Cache a client using its socket factory as the hash key
private Map<SocketFactory, Client> clients =new HashMap<SocketFactory, Client>();
4、Invoker
private Client.ConnectionId remoteId;
private Client client;
private boolean isClosed = false;
5、VersionMismatch
private String interfaceName;the name of the protocol mismatch 不协调,不搭配
private long clientVersion; the client's version of the protocol
private long serverVersion;the server's version of the protocol
Get the client's preferred version
Get the server's agreed to version.
6、Server
An RPC Server.
public static class Server extends org.apache.hadoop.ipc.Server
private Object instance;
private boolean verbose;
踏着前人的脚印学Hadoop——RPC源码的更多相关文章
- 踏着前人的脚印学hadoop——ipc中的Server
1.An abstract IPC service. IPC calls take a single {@link Writable} as a parameter, and return a {@ ...
- 踏着前人的脚印学Hadoop——序列化,Writerable
package org.apache.hadoop.io; import java.io.DataOutput;import java.io.DataInput;import java.io.IOEx ...
- 踏着前人的脚印学Hadoop——结构、重点
HDFS作为一个分布式文件系统,是所有这些项目的基础.分析好HDFS,有利于了解其他系统.由于Hadoop的HDFS和MapReduce是同一个项目,我们就把他们放在一块,进行分析. 如果把整个had ...
- 踏着前人的脚印学hadoop——ipc中的Client
1.Client有五个内部类,分别是Call,ParallelCall,ParallelResult,Connetion,ConnectionId 其实这五个类就是去完成两件事情的,一件事情是连接,另 ...
- Hadoop RPC源码分析
Hadoop RPC源码分析 上一篇文章http://www.cnblogs.com/dycg/p/rpc.html 讲了Hadoop RPC的使用方法,这一次我们从demo中一层层进行分析. RPC ...
- Hadoop RPC源码阅读-交互协议
Hadoop版本Hadoop2.6 RPC主要分为3个部分:(1)交互协议(2)客户端 (3)服务端 (1)交互协议 协议:把某些接口和接口中的方法称为协议,客户端和服务端只要实现这些接口中的方法就可 ...
- Hadoop RPC源码阅读-服务端Server
Hadoop版本Hadoop2.6 RPC主要分为3个部分:(1)交互协议 (2)客户端(3)服务端 (3)服务端 RPC服务端的实例代码: public class Starter { public ...
- Hadoop RPC源码阅读-客户端
Hadoop版本Hadoop2.6 RPC主要分为3个部分:(1)交互协议(2)客户端(3)服务端 (2)客户端 先展示RPC客户端实例代码 public class LoginController ...
- 【原创】从零开始学SpagoBI5.X源码汉化编译
从零开始学SpagoBI5.X源码汉化编译 一.新建Tomact Server 服务器并配置测试1.文件-新建-其他-过滤server-服务类型选择Tomact V7.0 Server2.根据需要修改 ...
随机推荐
- svn设置提交忽略某些文件或文件夹
在svn客户端,想设置忽略提交.class文件,通过 properties > New > Other 添加一个忽略的属性,,还是不行:部分屏蔽了,部分class还是在列表中 再次参考了一 ...
- OpenGL的视图变换、模型变换、投影变换、视口变换
产生目标场景的过程类似于用照相机进行拍照: (1) 把照相机固定在三角架上,并让他对准场景从不同位置观察场景(视图变换) gluLookAt (2) 对场景进行安排,使各个物体在照片中的位置是我们所希 ...
- c++11 其他特性(一)
c++11还增加了许多有用的特性,比如: 1. 委托构造函数 如果一个类含有很多构造函数,这些构造函数有一些重复的地方,比如: class A{ public: A(){}; A(int a){ a_ ...
- examine self thrice a day2016
----------------------------2016----------------------- 12.31.2016 2016年,感恩一路帮助过我的所有人! 每个人来到世 ...
- java线程中断和终止线程运行
ava中启动一个线程很容易,通常情况下我们都是等到任务运行结束后让线程自行停止.但有时需要在任务正在运行时取消他们,使得线程快速结束.对此Java并没有提供任何机制.但是我们可以通过Java提供的线程 ...
- python 写入csv文件
import csv fieldnames = ['Column1', 'Column2', 'Column3', 'Column4'] rows = [{'Column1': '0', 'Col ...
- python获取文件时间
import time, os create_time = time.ctime(os.path.getctime(filename)) modify_time = time.ctime(os.pat ...
- OC 类别(分类)Categroy
Categroy类别,又称为扩展类,在类的原基础上扩展方法,且不可添加变量,如果扩展的方法与原始类中的方法相同,则会隐藏原始方法,且不可在扩展方法中通过super调用原始方法,这里与继承不同. 定义: ...
- IDEA 创建Java Web项目
发现项目目录没有classes和lib目录,所以自己创建 点击OK,选中"Jar Directroy"-->点击"OK" 然后直接把jar复制到这个目录下 ...
- java下载网络图片
import java.io.DataInputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IO ...