`
ziye520
  • 浏览: 13450 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hadoop RPC

阅读更多

终于完成Hadoop 相关信息的系统性学习,最近正在正对Hadoop 不同功能点的学习。由于之前对于分布式网络通信接触比较少,在看到RPC的时候,充满了困惑。

借这篇文章来记录下我的学习方式。

在学习之前首先需要了解java 的动态代理模式。

 

package com.study.hbase.dynamic.inter;

public interface DynamicProtocol {
	public int add(int a , int b);
	public int sub(int a , int b);
}

 然后需要定义一个实现类

 

 

package com.study.hbase.dynamic.inter;

public class DynamicProtocolImpl implements DynamicProtocol {

	@Override
	public int add(int a , int b) {
		// TODO Auto-generated method stub
		return a+b;
	}

	@Override
	public int sub(int a , int b ) {
		// TODO Auto-generated method stub
		return a-b;
	}

}

 

 

这个时候,我们需要定义一个动态的代理类

 

 

package com.study.hbase.dynamic.inter;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class DynamicProtocolInvocationHandler implements InvocationHandler {
	private DynamicProtocol obj ;
	
	public DynamicProtocolInvocationHandler(DynamicProtocol obj){
		this.obj = obj;
	}
	
	@Override
	public Object invoke(Object proxy, Method method, Object[] args)
			throws Throwable {
		System.out.println("=============befor invoke=========");
		Object res = method.invoke(obj, args);
		System.out.println("=============befor invoke=========");
		return res;
	}

}

 

 

package com.study.hbase.dynamic;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;

import junit.framework.TestCase;

import com.study.hbase.dynamic.inter.DynamicProtocol;
import com.study.hbase.dynamic.inter.DynamicProtocolImpl;
import com.study.hbase.dynamic.inter.DynamicProtocolInvocationHandler;

public class TestDynamic extends TestCase {

	public void testAdd(){
		
		DynamicProtocol protocol = new DynamicProtocolImpl();
		InvocationHandler handler = new DynamicProtocolInvocationHandler(protocol);
		
		DynamicProtocol proxy = (DynamicProtocol)Proxy.newProxyInstance(
				DynamicProtocol.class.getClassLoader(), protocol.getClass().getInterfaces(),
				handler);
		proxy.add(1, 2);
	}
}

 

下面是运行的结果

 

=============befor invoke=========
=============befor invoke=========

 

 

 下面该说道我这次做笔记的主要只是点了

在学习Hadoop RPC之前,首先要知道

1.RPC 是什么,为什么需要RPC?

2.Hadoop 的RPC 是如何工作的?

针对这三个问题,我是逐步去了解的。

 

1.RPC 是什么

如果你学过java的网络编程,就一定知道:当客户端发送一个字节给服务端时,服务端必须也要有一个读字节的方法在阻塞等待;反之亦然。 这种我把它称为底层的通信协议。可是对于一个大型的网络通信系统来说,很显然这种说法的协议粒度太小,不方便我们理解整个网络通信的流程及架构,于是我们换个角度来理解:架构层次的协议。通俗一点说,就是我把某些接口和接口中的方法称为协议,客户端和服务端只要实现这些接口中的方法就可以进行通信了,从这个角度来说,架构层次协议的说法就可以成立了(学习框架钱切记不要过多的陷入方法实现的细节上,先从整体上把握)

 

2Hadoop 的RPC 是如何工作的?



 

 

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Hadoop RPC机制分析

    《Hadoop RPC机制详解》 在分布式计算领域,Hadoop是一个不可或缺的名字,它提供了一整套处理大数据的框架。在Hadoop中,远程过程调用(RPC)是核心组件之一,它使得节点间的通信变得高效且可靠。本文将深入探讨...

    hadoop rpc实例

    在分布式计算领域,Hadoop RPC(Remote Procedure Call)是一个至关重要的组件,它使得Hadoop生态系统中的各个服务能够相互通信,实现数据的高效处理和共享。在这个实例中,我们将深入探讨Hadoop RPC的工作原理、...

    Hadoop rpc源码

    Hadoop rpc源码是从Hadoop分离出的ipc,去掉了认证部分,附录使用文档.使用前请add lib包commons-logging-*.*.*.jar(我用的是1.0.4)和log4j-*.*.*.jar(我的1.2.13) 相关blog post: ...

    Hadoop_RPC详细分析.doc

    Hadoop RPC 详细分析 Hadoop RPC(Remote Procedure Call,远程过程调用)是 Hadoop 项目中的一个重要组件,用于实现分布式系统中的通信和数据交换。下面是对 Hadoop RPC 的详细分析。 RPCInterface Hadoop RPC ...

    hadooprpc机制&&将avro引入hadooprpc机制初探

    RPC(RemoteProcedureCall)——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPCServer实现了一种抽象的RPC服务,同时提供Call队列。RPCServer作为服务提供者由两个...

    java操作hadoop的RPC,源码

    Java操作Hadoop的RPC(Remote Procedure Call)是分布式计算领域中的关键技术,它允许在不同的进程或机器之间进行远程调用,如同本地调用一样。Hadoop作为一个开源的大数据处理框架,其RPC机制是实现各个组件如...

    Hadoop Java接口+RPC代码实现

    1.java接口操作Hadoop文件系统(文件上传下载删除创建......2.RPC远程过程调用的java代码实现,便于理解Hadoop的RPC协议,具体使用方法可参考我的博客https://blog.csdn.net/qq_34233510/article/details/88142507

    Hadoop自己的Rpc框架使用Demo

    在分布式计算领域,Hadoop RPC(Remote Procedure Call)框架是一个至关重要的组件,它允许不同的进程之间进行通信,尤其是在大规模数据处理的场景下。Hadoop RPC是Hadoop生态系统中的基础服务,使得不同模块如HDFS...

    学习hadoop_源代码,RPC_部分

    ### Hadoop RPC 深入理解 #### 一、引言 随着大数据处理需求的日益增长,Apache Hadoop 作为一款流行的开源分布式计算框架,在处理海量数据方面展现出了极高的性能和灵活性。其中,Hadoop 的远程过程调用(RPC)...

    Hadoop的RPC通信程序

    ### Hadoop的RPC通信程序详解 #### 一、引言 在分布式系统中,远程过程调用(Remote Procedure Call, RPC)是一种重要的通信机制,它允许一台计算机上的程序调用另一台计算机上的子程序,而无需程序员了解底层网络...

    Hadoop里的RPC机制过程

    在Hadoop中,远程过程调用(Remote Procedure Call, RPC)是一种重要的通信机制,它允许分布式系统中的组件之间进行高效且便捷的交互。Hadoop的RPC机制基于Java的客户端-服务器模型,允许客户端调用服务器上的方法,...

    java_RPC_hadoop.zip

    在Java中模拟Hadoop的RPC通讯,主要是为了理解其连接和心跳机制,这是保证Hadoop集群稳定运行的关键部分。 RPC的核心思想是透明性,即客户端可以像调用本地方法一样调用远程服务,由RPC框架负责数据的序列化、网络...

    Hadoop学习笔记—3.HadoopRPC机制的使用

    RPC,即RemoteProcdureCall,中文名:远程过程调用;...(2)Hadoop的进程间交互都是通过RPC来进行的,比如Namenode与Datanode直接,Jobtracker与Tasktracker之间等。因此,可以说:Hadoop的运行就是建立在

    HDFS源码剖析带书签目录高清.zip

    《Hadoop 2.X HDFS源码剖析》以Hadoop 2.6.0源码为基础,深入剖析了HDFS 2.X中各个模块的实现细节,包括RPC框架实现、Namenode实现、Datanode实现以及HDFS客户端实现等。《Hadoop 2.X HDFS源码剖析》一共有5章,其中...

    hdfs源码.zip

    1.2.1 Hadoop RPC接口 4 1.2.2 流式接口 20 1.3 HDFS主要流程 22 1.3.1 HDFS客户端读流程 22 1.3.2 HDFS客户端写流程 24 1.3.3 HDFS客户端追加写流程 25 1.3.4 Datanode启动、心跳以及执行名字节点指令...

    hadoop中RPC协议的小测试例子(吴超老师)

    在IT行业中,分布式计算系统的重要性日益凸显,而Hadoop作为其中的佼佼者,其核心组件之一就是远程过程调用(RPC,Remote Procedure Call)。RPC允许一个程序在某个网络中的计算机上执行另一个计算机上的程序,而...

Global site tag (gtag.js) - Google Analytics