花了许多功夫把Hadoop的mapreduce实现过了一遍,基本线索理清楚了:
1. 任务的运行时TaskTracker通过heartbeat取得
2. TaskTracker得到hearbeatresponse之后,会根据封装在response里的action来决定行为
3. 如果是launchaction的话,调用TasklLauncher,在startNewTasks中的localizeJob调用launchTaskForJob然后再TaskInProgress中launchTask让runner.start(); - 这里面的startNewTasks是在线程中的run方法中,而TaskLauncher的notifyall会把线程唤醒:
public void addToTaskQueue(LaunchTaskAction action) {
synchronized (tasksToLaunch) {
TaskInProgress tip = registerTask(action, this);
tasksToLaunch.add(tip);
tasksToLaunch.notifyAll();
}
}
而这个addToTaskQueue方法是在offerService中调用的,这样就整过过程就街上了:
if (action instanceof LaunchTaskAction) {
addToTaskQueue((LaunchTaskAction)action);
} else if (action instanceof CommitTaskAction)
4. 这个时候就回到TaskRunner.run中去launchJVM,当然要把这个JVM的参数构造好,这个JVM就是我们看到map任务运行的JVM
5. 然后JVMRunner会spawn JVM, 这是通过shexe Child这个类来实现的,这个Child的main就是新起的JVM的主函数入口
6.在Child.main中会对任务的类型进行判断,调用相应的MapTask.run和ReduceTask.run
7.这个时候就可以看到mapper.map入口啦,然后就开始执行用户定义的mapper!
所以Child启动以后的log输出和前面TaskTracker的输出不在同一个文件里,因为已经不是一个虚拟机了。
分享到:
相关推荐
Hadoop源码 包含mapred
基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书...
hadoop mapred_tutorial官方文档
ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Failed to set permissions of path: \tmp\hadoop-admin \mapred\local\ttprivate to 0700 at org.apache...
hadoop权威指南4和源码hadoop权威指南4和源码hadoop权威指南4和源码hadoop权威指南4和源码
Java操作Hadoop Mapreduce基本实践源码.
使用Eclipse的export功能把所有源码打包,然后把打包后的jar文件拷贝到hadoop集群的$HADOOP_HOME/share/hadoop/mapreduce/lib目录下面。这一步相当重要,否则项目将无法找到相关类。注意,如果搭建的是全分布集群,...
hadoop源码,官方,放心下载,完整版,阅读hadoop源代码的目的不一定非是工作的需要,你可以把他看成一种修养,通过阅读hadoop源代码,加深自己对分布式系统的理解,培养自己踏实做事的心态。
Hadoop学习总结合源码分析,网上收集整理
hadoop 2.9.0 mapred-site.xml 全部属性集,默认值及属性描述,其中关键属性已使用pdf注释
实战hadoop,源码,刘鹏,开启通向云计算的捷径
Hadoop及源码 Hadoop及源码 Hadoop及源码 Hadoop及源码
java 关联hadoop源码 查看底层实现,mapReduce实现 HDFS实现
hadoop 框架下 mapreduce源码例子 wordcount ,eclipse下,hadoop 2.2 可以运行
hadoop 源码解析_yarn源码解析
hadoop简单开发例子源码(含jar包),适用于初学者!
hadoop2.9.x源码编译工具包(maven、protocolBuffer、findbugs)
hadoop2.7.3的源码包,hadoop关联源码的时候直接选择就可以查看源码。是自己通过mvn下载的源码之后压缩的。
win 7 64上编译 Hadoop 2.7.3 源码 的真实经历。