码迷,mamicode.com
首页 > 其他好文 > 详细

Hadoop 源代码分析(五)RPC 框架

时间:2015-05-11 18:09:28      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:hadoop   rpc   

介绍完org.apache.hadoop.io 以后,我们开始来分析org.apache.hadoop.rpc。RPC 采用客户机/服务器模式。请求程序就是一
个客户机,而服务提供程序就是一个服务器。当我们讨论HDFS 的,通信可能发生在:
Client-NameNode 之间,其中NameNode 是服务器
Client-DataNode 之间,其中DataNode 是服务器
DataNode-NameNode 之间,其中NameNode 是服务器
DataNode-DateNode 之间,其中某一个DateNode 是服务器,另一个是客户端
如果我们考虑Hadoop 的Map/Reduce 以后,这些系统间的通信就更复杂了。为了解决这些客户机/服务器之间的通信,Hadoop
引入了一个RPC 框架。该RPC 框架利用的Java 的反射能力,避免了某些RPC 解决方案中需要根据某种接口语言(如CORBA 的IDL)
生成存根和框架的问题。但是,该RPC 框架要求调用的参数和返回结果必须是Java 的基本类型,String 和Writable 接口的实
现类,以及元素为以上类型的数组。同时,接口方法应该只抛出IOException 异常。
既然是RPC,当然就有客户端和服务器,当然,org.apache.hadoop.rpc 也就有了类Client 和类Server。但是类Server 是一
个抽象类,类RPC 封装了Server,利用反射,把某个对象的方法开放出来,变成RPC 中的服务器。
下图是org.apache.hadoop.rpc 的类图。 技术分享

更多精彩内容请关注:http://bbs.superwu.cn 

关注超人学院微信:BJ-CRXY

扫一扫微信二维码:技术分享

Hadoop 源代码分析(五)RPC 框架

标签:hadoop   rpc   

原文地址:http://crxy2013.blog.51cto.com/9922445/1650330

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!