`

hadoop RPC

阅读更多

 

hadoop RPC

 

 

 上边是一张hadoop RPC很粗糙的类图,只包含其中主要的类关系

 

  hadoop RPC的总架构是

    Client端使用的是阻塞的Socket,

    Client的Connection内部类负责Socket的操作

        setupIOStream方法建立socket连接

        sendParam(call)方法传输客户端socket数据

        receiveResponse会阻塞等待服务端的response

 

   客户端Client没有使用NIO, 而是使用Connection线程的对象池,以ConnectionID为主键。

 

   -------------------------------------------------------------------------------------------------------------

 

Server端使用的是非阻塞的Socket 大量使用Selector

 

Server的Listener内部类负责接收Socket请求,并开启reader的线程池,在需要读取数据时,wakeup selector--唤醒读线程;Listener中的Reader内部类负责读取socket数据(具体的操作还是在Listener和Connection中,可见reader这个内部类是因为效率而后加的),读取的数据也包括hadoop的头数据,封装为Call对象,放到Server下的队列中

 

Server的Handler内部类负责获取队列中的Call对象,并且调用处理类Call,返回处理后的的value,并且调用doRespond,wakeup-selector--唤醒写线程

 

Server的Responder内部类负责写入相应信息。

 

Server只负责启动listener,handler,responder各个线程,让其各执其责。

他并不是继承与Thread,但是其包含大量Thread,所有的服务操作都要在这一个Server中进行,个人认为这也暴漏了hadoop架构的缺陷

public synchronized void start() {  
  responder.start();  //启动responder  
  listener.start();   //启动listener  
  handlers = new Handler[handlerCount];  
    
  for (int i = 0; i < handlerCount; i++) {  
    handlers[i] = new Handler(i);  
    handlers[i].start();   //逐个启动Handler  
  }  
}

 

 

   

 

 

 

 

 

  • 大小: 89.3 KB
  • 大小: 4.9 KB
分享到:
评论

相关推荐

    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