Chinaunix首页 | 论坛 | 博客
  • 博客访问: 628058
  • 博文数量: 149
  • 博客积分: 3901
  • 博客等级: 中校
  • 技术积分: 1558
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-16 14:33
文章分类

全部博文(149)

文章存档

2014年(2)

2013年(10)

2012年(32)

2011年(21)

2010年(84)

分类: 云计算

2012-04-26 19:44:50





hadoop 集群的控制和数据流都被 Protocol 协议包装。

hadoop RPC 最简单的使用 说明 :
  VersionedProtocol / getProtocolVersion 需要提供一个协议版本

我们先从使用最简单的使用开始理解 hadoop的 RPC.
参考:http://www.cnblogs.com/hiddenfox/archive/2011/12/30/2305786.html
 1. 在 Server 端 , 通过 RPC.getServer 绑定实现 VersionedProtocol的实现类 .
实现类 其他RPC方法返回值 须是 Writable 实现类,保证可序列化传输.

 2. 在 Client 端 ,调用 RPC.waitForProxy(VersionedProtocol实现类Class) 
获取Client端 的代理类。
 3. 在 Client 端,调用 proxy.xxx 方法,会在 Server 运行的并把 运行的 xxx 方法的返回值 通过 RPC 返回给 Client 的 proxy.xxx ;



再来看看hadoop内部 RPC 是怎么处理的 :
参考:
 了解RPC内部的运行流程 
   1. 在 Server 端,使用 RPC.getServer
   2. 会实例化出 RPC.Server 并 start()
     2.1 start listener #server 接受监听请求,拥塞在 selector.select
           关键在 listener.doAccept 处, 获取请求后 线程Reader 
     2.2 start responder #拥塞在 selector.select 
     2.3 start handlers  #拥塞在 callQueue.take()

未完
   




阅读(1537) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~