Hadoop RPC机制及使用

一、Hadoop RPC基本介绍

1.1 RPC基本概念

  远程过程调用(Remote Procedure Call,RPC)是一种通过网络从远程计算机上请求服务,但不需要了解底层网络技术的协议。
  RPC通常采用客户机/服务器模型。请求程序是一个客户机,而服务提供程序则是一个服务器。一个典型的RPC框架如下:

RPC框架

该框架主要包括以下四个部分:
(1)通信模块:两个相互协作的通信模块实现“请求—应答”协议。它们在客户机和服务器之间传递请求和应答消息,一般不会对数据包进行任何处理。

(2)Stub程序:客户端和服务端均包含Stub程序,可将之看作代理程序。它使得远程函数调用表现得跟本地调用一样,对用户程序完全透明。在客户端,它表现得就像一个本地程序,但不直接执行本地调用,而是将请求信息通过通信模块发送给服务器端。此外,当服务器端发送应答后,它会解码对应结果。在服务器端,Stub程序依次进行以下处理:解码请求消息中的参数、调用相应的服务过程和编码应答结果的返回值。

(3)调度程序:调度程序接收来自通信模块的请求消息,并根据其中的标识选择一个Stub程序处理。通常客户端并发请求量比较大时,会采用线程池提高处理效率。

(4)客户程序/服务过程:请求的发出者和请求的处理者。如果是单机环境,客户程序可直接通过函数调用访问服务过程,但在分布式环境下,需要考虑网络通信,这不得不增加通信模块和Stub程序(保证函数调用的透明性)。

1.2 RPC的基本流程

  通常而言,一个RPC请求从发送到获取处理结果,所经历的步骤如下:

(1)客户程序以本地方式调用系统产生的Stub程序;

(2)该Stub程序将函数调用按照网络通信模块的要求封装成消息包,并交给通信模块发送到远程服务器端;

(3)远程服务器端接收此消息后,将此消息发送给相应的Stub程序;

(4)Stub程序拆封消息,形成被调用过程要求的形式,并调用对应的函数;

(5)被调用函数按照所获参数执行,并将结果返回给Stub程序;

(6)Stub程序将此结果封装成消息,通过网络通信模块逐级地传输给客户程序。

1.3 Hadoop RPC的特点

(1)透明性:当用户在一台计算机的程序调用调用另一台计算机上的子程序时,对用户

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值