HDFS源码分析(1)--RPC解析

本文深入剖析Hadoop 3.0中HDFS的RPC机制,从通信问题和序列化两个方面进行探讨。介绍了RPC的基本概念,并以打电话为例进行解释。在通信问题上,Hadoop采用socket通信,而序列化则通过Writable接口及RPCWritable抽象类实现,包括WritableWrapper、ProtobufWrapper和Buffer三个子类。默认使用谷歌Protobuf作为序列化框架。此外,文章还预告了客户端的Client类和服务器端的Server类的详细讲解。
摘要由CSDN通过智能技术生成

首先需要声明的是,我是基于Hadoop 3.0的源码

什么是RPC

    RPC:远程过程调用,怎么理解这个概念呢,就是说比如有两台服务器A、B,A服务器上的程序想要调用B服务器上的某个方法就像在本地调用一样,能够的到结果或者失败之后的异常。那么这个过程中涉及到几个部分呢。这里先举一个简单的例子来说明一下。

    RPC可以简单的抽象成一个打电话的例子(虽然有所不同,但是初期这样可以有助于理解)。如果我们在公司因为下雨然后想关上家里的窗户,我们可能伸手去关掉吗?如果你不是在家办公显然不可能。但是你可以打电话叫你的家人或者房东帮你关上,并且叫他关上之后给你一个答复,所以你通过这个过程关上了窗户,这就是RPC,你通过远程调用了房东或者家人的手去把窗户关上了。那接下来看看这个过程需要解决的几个问题。

1、  通信问题:如果没有电话,那么上面这个过程肯定不可能实现,你也许说我公司离家近,我可以靠喊,但是喊也是一种通信,我们需要一种通信手段去和远程的服务器建立联系。在Hadoop中使用的是socket通信。

2、  序列化问题:我们在通电话的过程还需要将我们说的话转化成电磁波传送到房东的手机上在转化成声音,这就是一个序列化和反序列化的过程。在程序中我们也需要将调用的方法参数等等信息进行序列化,然后传输到远程服务器上,再反序列化成相应的对象参数。

 

我们暂时就这样去理解RPC,当然RPC不止这样。更

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值