`
flychao88
  • 浏览: 753350 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hadoop RPC机制

 
阅读更多

RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。Hadoop底层的交互都是通过 rpc进行的。例如:datanode和namenode 、tasktracker和jobtracker、secondary namenode和namenode之间的通信都是通过rpc实现的。下面是rpc交互过程图:

RPC server端的实体模型
      上一部分是站在用户的角度,宏观地观察整个调用过程。这节分析下在细节上RPC都有哪些实体。为什么要提到这些实体呢?如果把RPC流程看做流水线的话,这些实体就是一个个做具体工作的工人,如果想深入了解流水线的处理,就得知道每个工作他的职责及概况。

      RPC在客户端的细节不多,只想提一点,就是用户在调用代理对象时RPC是怎样拦截这次调用请求呢。对动态代理清楚的朋友都知道,创建代理对象时需要为它 关联一个InvocationHandler,对代理对象的每次调用都会进入绑定的InvocationHandler中,RPC就从这里获取用户的请 求,这里没有疑点。[关于动态代理]

      需要详细说的是RPC在服务端的模型,它由一系列实体组成,分别负责调用的整个流程。这里也可以用一张图来描述它们

hadoop <wbr>RPC <wbr>机制

从图上看,各个实体分工明确,各司其职。下面我会一一介绍。
Listener
      监听RPC server的端口,如果客户端有连接请求到达,它就接受连接,然后把连接转发到某个Reader,让Reader去读取那个连接的数据。如果有多个 Reader的话,当有新连接过来时,就在这些Reader间顺序分发。这里需要提到的是,Hadoop0.21版本在支持多Reader时有个bug(JIRA),如果有Reader在server运行期没被使用,Server进程不能正常关闭
Reader
      Reader的职责就是从某个客户端连接中读取数据流,然后把它转化成调用对象(Call),然后放到调用队列(call queue)里
Handler
      真正做事的实体。它从调用队列中获取调用信息,然后反射调用真正的对象,得到结果,然后再把此次调用放到响应队列(response queue)里
Responder
      它不断地检查响应队列中是否有调用信息,如果有的话,就把调用的结果返回给客户端。

      整个调用流程中与网络有关的地方都是用NIO来处理的。

分享到:
评论

相关推荐

    Hadoop RPC机制分析

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

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

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

    hadoop rpc实例

    Hadoop RPC是Hadoop框架中用于进程间通信的一种机制,它允许一个进程调用另一个远程进程中定义的方法,仿佛这个方法是在本地执行一样。这种透明性使得开发者可以专注于业务逻辑,而无需关心底层通信细节。 ### 工作...

    Hadoop_RPC详细分析.doc

    * 可靠性:Hadoop RPC 使用了多种机制来确保系统的可靠性,例如心跳机制、超时机制等。 结论 Hadoop RPC 是 Hadoop 项目中的一个重要组件,它提供了分布式系统中的通信和数据交换机制。通过对 Hadoop RPC 的详细...

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

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

    Hadoop里的RPC机制过程

    Hadoop的RPC机制基于Java的客户端-服务器模型,允许客户端调用服务器上的方法,就像调用本地方法一样。下面将详细解析Hadoop RPC的工作流程。 首先,客户端C发起对服务器S的远程方法M的调用。这个过程分为以下几个...

    java操作hadoop的RPC,源码

    Hadoop作为一个开源的大数据处理框架,其RPC机制是实现各个组件如NameNode、DataNode、TaskTracker等之间通信的核心。以下是对这个主题的详细讲解: 1. **RPC基础概念**: - RPC是一种进程间通信(IPC)方式,它...

    [HBase]源码级强力分析hadoop的RPC机制

    这些天一直奔波于长沙和武汉之间,忙着腾讯的笔试、面试,以至于对hadoopRPC(RemoteProcedureCallProtocol,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。...

    Hadoop的RPC通信程序

    本文将详细介绍如何使用Hadoop的RPC机制创建一个简单的协议接口、通信服务端和通信客户端程序。这不仅有助于理解分布式系统中的RPC协议,还能深入了解客户机与服务器之间的通信机制。 #### 二、创建RPC通信程序 ##...

    学习hadoop_源代码,RPC_部分

    其中,Hadoop 的远程过程调用(RPC)机制是其核心组件之一,用于实现不同节点之间的高效通信。本文将详细介绍 Hadoop RPC 的基本概念、工作原理以及其实现细节。 #### 二、Hadoop RPC 基本介绍 ##### 2.1 RPC 概念...

    hadoop-fs指令学习.pdf

    #### 四、Java API与Hadoop RPC机制 除了命令行工具外,Hadoop还提供了丰富的Java API,以便开发者可以通过编程方式与HDFS交互。这些API覆盖了几乎所有的HDFS操作,包括文件的读写、权限管理等。 此外,Hadoop使用...

    Hadoop自己的Rpc框架使用Demo

    Hadoop的RPC框架就是基于这个理念构建的,它实现了客户端与服务器端之间的高效、安全的通信机制。 要使用Hadoop的RPC框架,你需要完成以下步骤: 1. **定义协议**:创建一个接口,声明客户端和服务器端需要交互的...

    java_RPC_hadoop.zip

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

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

    Hadoop使用Writables接口和Protocol Buffers支持多种序列化机制。 3. **连接建立**:客户端通过Socket连接到服务端的指定端口,并进行身份验证。Hadoop使用SSL加密确保连接安全。 4. **请求发送**:客户端将请求...

    rpc架构与hadoop分享

    ### RPC架构概述 RPC(Remote Procedure Call Protocol,远程过程调用协议)是一种通过网络请求服务的方式,它允许程序调用另一个地址空间中的函数或方法,就像调用本地进程中的函数或方法一样简单。RPC框架主要...

    学习hadoop源代码,RPC部分.pdf

    Hadoop中的RPC机制是基于Java的IPC(Inter-Process Communication)实现的,它在设计时考虑了性能、效率和可控制性,因此与RMI(Remote Method Invocation)等其他RPC方案有所不同。 1. **RPC原理**: Hadoop的RPC...

Global site tag (gtag.js) - Google Analytics