Hadoop源码分析之心跳机制

发表于:2012-5-31 10:00

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:jlins_you    来源:51Testing软件测试网采编

  三、Tasktracker、Jobtracker心跳源码分析

  同样我们从Tasktracker入手,下面贴出Tasktracker.class的关键代码:

  代码四:

  1. 代码一:  
  2. State offerService() throws Exception {  
  3.     long lastHeartbeat = System.currentTimeMillis();  
  4.     while (running && !shuttingDown) {  
  5.      •••  
  6.           
  7.         // 发送心跳,调用代码二  
  8.         HeartbeatResponse heartbeatResponse = transmitHeartBeat(now);  
  9.  
  10.       •••  
  11.     return State.NORMAL;  
  12.   }  
  13.  
  14. 代码二:  
  15. HeartbeatResponse transmitHeartBeat(long now) throws IOException {  
  16.    •••  
  17.     HeartbeatResponse heartbeatResponse = jobClient.heartbeat(status,   
  18.                                                               justStarted,  
  19.                                                               justInited,  
  20.                                                               askForNewTask,   
  21.                                                          heartbeatResponseId);                                
  22. •••  
  23.     return heartbeatResponse;  
  24.   }

  其实我觉得分析到这里大家就可以自己分析了,jobClient也是一个协议:

  代码五:

InterTrackerProtocol jobClient;

  该协议用于定义Tasktracker和Jobtracker的通信。同样,它也是一个代理对象:

  代码六:

  1. this.jobClient = (InterTrackerProtocol)   
  2.     UserGroupInformation.getLoginUser().doAs(  
  3.         new PrivilegedExceptionAction<Object>() {  
  4.       public Object run() throws IOException {  
  5.         return RPC.waitForProxy(InterTrackerProtocol.class,  
  6.             InterTrackerProtocol.versionID,  
  7.             jobTrackAddr, fConf);  
  8.       }  
  9.     });

  终于,hadoop底层通信整个系列的源码分析全部完成了。我可以好好地复习学校的功课了。呵呵。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号