MapReduce的工作机制

转载 2013年12月04日 16:58:07


    最近开始学习Hadoop和Hbase的相关内容,把自己在看的《Hadoop:The Definitive Guide》里的内容总结一下,有助于理解,也就是温故而知新了。首先是了解Hadoop中的MapReduce工作机制。MapReduce作业的运行过程如图6-1所示。包含4个独立的实体:(1)Client:提交MapReduce作业,(2)JobTracker:协调作业的运行。(3)TaskTracker:运行作业划分后的Map任务或Reduce任务。(4)Shared FileSystem(一般为HDFS),用来在其他实体间共享作业文件。

                    

 1.作业的提交

Job的waitForCompletion(true)方法所实现的作业提交过程如下:向jobtracker请求一个新的作业ID,见步骤2。检查作业的输出说明。计算作业的InputSplit。将运行作业所需要的资源(包括作业JAR文件、配置文件和计算所得的输入文件)复制到一个以作业ID命名的目录下jobtracker的文件系统。作业JAR的副本由mapred.submit.replication属性控制(默认值为10),见步骤3。告知jobtracker作业准备执行,见步骤4。

2.作业初始化

JobTracker会把作业放入一个内部队列中,交由job scheduler进行调度,并对其进行初始化(见步骤5)。为了创建任务运行列表,作业调度器首先从共享文件系统中获取Job已计算好的InputSplit的信息(见步骤6)。然后为每个InputSplit创建一个map任务。

3.任务的分配

TaskTracker定期发送“心跳”(heartbeat)给JobTracker.“心跳”告知jobtracker,tasktracker是否还存活,同时也充当两者之间的消息通道(见步骤7)。在jobtracker为tasktracker选择任务之前,jobtracker必须先选定任务所在的作业。在Hadoop中,MapReduce的调度器可以选择,默认的调度器是原始的基于队列的FIFO调度器,还有两个多用户调度器,分别名为Fair Scheduler和 Capacity Scheduler。一旦选择好作业,jobtracker就可以为该作业选定一个任务。对于map任务和reduce任务,tasktracker有固定数量的任务槽。

4.任务的执行

tasktracker已经被分配一个任务,下一步是运行该任务。第一步,通过从共享文件系统把作业的JAR文件复制到tasktracker所在的文件系统。同时,tasktracker将应用程序所需要的全部文件从分布式缓存复制到本地磁盘(见步骤8)。第二步,tasktracker为任务新建一个本地工作目录,并把JAR文件中的内容解压到这个文件夹下。第三步,tasktracker新建一个TaskRunner实例来运行该任务。TaskRunner启动一个新的child JVM(见步骤9)来运行每个任务。

shuffle和排序

map函数开始产生输出时,它利用缓冲的方式写到内存,并处于效率的考虑进行预排序。图6-4展示了这个过程。

每个map任务都有一个环形内存缓冲区,用于存储任务的输出。

Continue

相关文章推荐

MapReduce工作机制参考

  • 2015-11-13 17:37
  • 22.70MB
  • 下载

mapreduce 的工作机制

本节将会从作业的角度来解释一个作业是如何在Hadoop的MapReduce计算框架下提交、运行等。 一个MapReduce作业运行过程如图 作业提交 用户的MapRedu...

Hadoop权威指南学习(四)——MapReduce工作机制

1. 作业提交 Hadoop学习总结:Map-Reduce的过程解析:从代码级解析map-reduce的过程,包括client发出请求,jobtracker和tasktracker的启动、交...

MapReduce 工作机制剖析

MapReduce工作机制剖析: 1.     在集群中的任意一个节点提交MapReduce程序; 2.     JobClient收到作业后,JobClient向JobTracker请求获取一个...

hadoop 学习笔记(二)MapReduce的工作机制

图1 Hadoop运行MapReduce作业的工作原理 作业的提交 JobClient的runJob()方法是用于新建JobClient实例并调用其submitJob()方法的便捷方式(步...

hadoop知识点总结(一)hadoop架构以及mapreduce工作机制

hadoop知识点总结(一)hadoop架构以及mapreduce工作机制 学习笔记

MapReduce1和Yarn的工作机制

Hadoop中的MapReduce的工作机制分为两种: MapReduce 1 也就是Hadoop 2.0之前的工作机制 YARN MapReduce 1构成MapReduce 1最主要的其实就是j...

《hadoop权威指南》学习笔记-MapReduce工作机制(上)

运行作业的方式通常有两种,一种是通过Job的submit()方法来提交任务,另一种是通过waitForCompletion()(如果作业没有提交就提交作业,然后一直等待作业执行完成)。 mapred....

MapReduce 2 的工作机制

原地址:MapReduce 工作机制 运行流程 当你在MapReduce程序中调用了Job实例的Submit()或者waitForCompletion()方法,该程序将会被提交到Yarn中...
  • xqShi
  • xqShi
  • 2017-05-18 15:42
  • 114

chp6_MapReduce工作机制_20111016

MapReduce工作机制   1.        剖析MapReduce的工作运行机制   2.        ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)