Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2051189
  • 博文数量: 610
  • 博客积分: 11499
  • 博客等级: 上将
  • 技术积分: 5511
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-12 19:27
文章分类

全部博文(610)

文章存档

2016年(5)

2015年(18)

2014年(12)

2013年(16)

2012年(297)

2011年(45)

2010年(37)

2009年(79)

2008年(101)

分类:

2012-04-30 10:37:44





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()

未完
   




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