博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop源码分析24 JobTracker启动和心跳处理流程
阅读量:5325 次
发布时间:2019-06-14

本文共 3578 字,大约阅读时间需要 11 分钟。

1.初始化和启动JobTracker

 

生成一个JobQueueTaskScheduler

 

taskScheduler=(TaskScheduler)ReflectionUtils.newInstance(schedulerClass,conf);

 

 

生成一个实现 InterTrackerProtocolJobSubmissionProtocolRefreshUserMappingsProtocolRefreshAuthorizationPolicyProtocolAdminOperationsProtocolServer(JobTracker)

 

this.interTrackerServer= RPC.getServer(this,addr.getHostName(),   addr.getPort(),handlerCount,  false, conf, secretManager);

 

 

 

启动HttpServer

 

infoServer=new HttpServer("job",infoBindAddress, tmpInfoPort,

       tmpInfoPort == 0, conf, aclsManager.getAdminsAcl());

.....

infoServer.start();

 

初始化JobHistory

 

jobHistoryServer = new JobHistoryServer(conf, aclsManager,infoServer);

jobHistoryServer.start();

 

获得本地FS客户端

this.localFs=FileSystem.getLocal(conf);

 

获得DFS客户端,即一个ClientProtocol的代理

fs=getMROwner().doAs(new PrivilegedExceptionActionFileSystem() {

           public FileSystem run() throws IOException{

             return FileSystem.get(conf);

 }});

}

 

 

确认系统目录

 

发送RPC请求:ClientProtocol.getFileInfo("/tmp/hadoop-admin/mapred/system")

返回:org.apache.hadoop.hdfs.protocol.HdfsFileStatus@7b84a726,用来对比ownerpermission

 

发送RPC请求:ClientProtocol.getListing(getListing(/tmp/hadoop-admin/mapred/system,[])

返回:[org.apache.hadoop.fs.FileStatus@f7ea7ce5] 用以添加recoveryJob

 

发送RPC请求ClientProtocol.delete(/tmp/hadoop-admin/mapred/system,true)

返回:true

 

发送RPC请求ClientProtocol.mkdirs(/tmp/hadoop-admin/mapred/system,rwxr-xr-x)

返回:true

 

发送RPC请求ClientProtocol.setPermission(/tmp/hadoop-admin/mapred/system,rwx------)

返回:true

 

 

启动 JobTracker

 

tracker.offerService();

 

 

发送RPC请求ClientProtocol.getFileInfo(/tmp/hadoop-admin/mapred/system/jobtracker.info)

返回:null

 

发送RPC请求ClientProtocol.getFileInfo(/tmp/hadoop-admin/mapred/system/jobtracker.info.recover)

返回:null

 

发送RPC请求ClientProtocol.create(/tmp/hadoop-admin/mapred/system/jobtracker.info,rwxr-xr-x, DFSClient_168936446, true, true, 3, 67108864)

返回:输入流

 

发送RPC请求ClientProtocol.setPermission(/tmp/hadoop-admin/mapred/system/jobtracker.info,rwx------)

返回:null

 

发送RPC请求ClientProtocol.addBlock(/tmp/hadoop-admin/mapred/system/jobtracker.info,DFSClient_168936446, null)

返回:org.apache.hadoop.hdfs.protocol.LocatedBlock@1f8c3fc9

 

发送RPC请求ClientProtocol.complete(/tmp/hadoop-admin/mapred/system/jobtracker.info,DFSClient_168936446)

返回:true

 

// start theinter-tracker server once the jt is ready

this.interTrackerServer.start();

 

2.JobTracker处理心跳

 

接收RPC请求:InterTrackerProtocol.getProtocolVersion(org.apache.hadoop.mapred.InterTrackerProtocol,29) from 10.1.1.102:47248

发送: 29

 

 

接收RPC请求:InterTrackerProtocol.getProtocolVersion(org.apache.hadoop.mapred.InterTrackerProtocol,29) from 10.1.1.103:39223

发送: 29

 

接收RPC请求:InterTrackerProtocol.getBuildVersion()from 10.1.1.102:47248

发送: 1.0.0 from 1214675 byhortonfo on Thu Dec 15 16:36:35 UTC 2011

 

 

 

接收RPC请求:InterTrackerProtocol.getBuildVersion()from 10.1.1.103:39224

发送: 1.0.0 from 1214675 byhortonfo on Thu Dec 15 16:36:35 UTC 2011

 

接收RPC请求:InterTrackerProtocol.getSystemDir()from 10.1.1.102:47250

发送: hdfs://server1:9000/tmp/hadoop-admin/mapred/system

 

接收RPC请求:InterTrackerProtocol.getSystemDir()from 10.1.1.103:39224

发送: ://server1:9000/tmp/hadoop-admin/mapred/system

 

 

接收RPC请求:InterTrackerProtocol.heartbeat(org.apache.hadoop.mapred.TaskTrackerStatus@157052cb,true, true, true, -1) from 10.1.1.102:47252

发送: HeartbeatResponseactions=[], conf=null, heartbeatInterval=3000, recoveredJobs=[],responseId=0      

 

接收RPC请求:InterTrackerProtocol.heartbeat(org.apache.hadoop.mapred.TaskTrackerStatus@71999260,true, true, true, -1) from 10.1.1.103:39226

发送: HeartbeatResponseactions=[], conf=null, heartbeatInterval=3000, recoveredJobs=[],responseId=0      

      

 

 心跳处理流程待续

 

 

转载于:https://www.cnblogs.com/leeeee/p/7276496.html

你可能感兴趣的文章
Hibernate与 MyBatis的比较
查看>>
jdk分析工具:jps和jstack
查看>>
2016 DTCC(中国数据库技术大会)
查看>>
使用 GStreamer appsrc 等插件实现视频音频混流,录制和推流
查看>>
Python Thread related
查看>>
UVA 11584 Partitioning by Palindromes (回文DP,4级)
查看>>
两张表的级联修改一例
查看>>
脑裂及其常见处理
查看>>
CSS小提示
查看>>
【转载】猪哥的公房菜-嵌入式Linux新手入门导引
查看>>
windows操作系统记事本保存操作时间、字符映射表的打开、步骤记录器使用
查看>>
ROM和RAM区别
查看>>
易语言斗鱼弹幕助手源码
查看>>
python模块
查看>>
P1337 [JSOI2004]平衡点 / 吊打XXX 模拟退火
查看>>
ssh连接报错
查看>>
VB与C#的区别(转载)
查看>>
Android--判断是否连接成功了指定wifi
查看>>
2018/6/19~2018/6/22 周记
查看>>
B. 存在的隐患
查看>>