hadoop之MapReduce执行流程

MapReduce执行流程

 
1:运行mapred程序;(不是hadoop节点也可以提交程序)
2、本次运行将生成一个Job,于是JobClient向JobTracker(协调作业运行)申请一个JobID以标识这个Job;
3、JobClient将Job所需要的资源提交到HDFS中一个以JobID命名的目录中。这些资源包括JAR包、配置文件、
   InputSplit、等;
4:JobClient向JobTracker提交这个Job;
5:JobTracker初始化这个Job;
6:JobTracker从HDFS获取这个Job的Split等信息;
7:JobTracker向TaskTracker分配任务;(心跳正常)
8:TaskTracker从HDFS获取这个Job的相关资源;
9:TaskTracker开启一个新的JVM;
10:TaskTracker用新的JVM来执行MapTask或ReduceTask;此条图示

我们下面模拟一个MapReduce任务,解释MapTask和ReduceTask
    1)一个文件file.txt;
    2)存储file.txt文件到HDFS;
    3) 统计file.txt文件里面”Refund”个数;
MapTask
 

 
1:client要计算 Refund要出现多少次
2:job Tracker 根据NameNode发现File.txt有三块,分别在DataNode 1,2,5上面
3:运行task任务
      map task(本地没有文件块)
      

       1:client要计算 Refund要出现多少次
       2:job Tracker 根据NameNode发现File.txt有三块,分别在DataNode 1,2,9上面,但是发现DN1
          上面没有Bolck则在同机架上寻找Block
       3:运行task任务
 
Reduce task

1:MapTask输出数据到ReduceTask
2:ReduceTask将数据输出到HDFS
 
 
 
 
 
 
 
 
posted on 2013-04-24 20:08  北京_飞狐  阅读(1342)  评论(0编辑  收藏  举报