MapReduce 框架采用 Master/Slave 架构,它由一个 JobTracher 和多个 TaskTracker 构成, 如下图所示。

图 2。1 MapReduce 框架

它主要有以下 4 个部分组成:

(1)Client

用户通过 Client 提交作业,即要运行的 MapReduce 程序,同时也上传该作业所需要的数 据文件。

(2)JobTracker

本科毕业设计说明书 第 5  页 JobTracker 在 Hadoop 中只有一个,对应于 Master 和 NameNode,是此框架下最核心的主 类之一。JobTracker 主要负责作业的调度、TaskTracker 的管理、作业执行的监控和运行作业 的容错机制。它与 TaskTracker 之间通过心跳机制通信,接受 TaskTracker 发来的节点信息和 在此节点上执行的任务状态信息。当 TaskTracker 告知 JobTracker 自己空闲时,JobTracker 将来~自,优^尔-论;文*网www.chuibin.com +QQ752018766-

相关的节点信息传给调度模块,从而给空闲的此 TaskTracker 分配任务。

(3)TaskTracker

TaskTracker 对应于 Slave 与 DataNode,它也是此框架下最重要的核心主类之一。通过心 跳机制与 JobTracker 通信,传送自己的节点信息和其上面的任务执行信息,接收并执行 JobTracker 传来的命令。TaskTracker 中把资源分为一个个 slot,而 slot 也分成两种类别:Map slot 和 Reduce slot, JobTracker 给它分配的两种任务分别在空闲的这两种 slot 上执行。 TaskTracker 主要任务就是针对任务的执行进行各种信息的监控和管理,其上的任务的并发程 度由于受限于相应的 slot 数量,受到自己配置的参数限制。

(4)Task

Task 即为作业的任务,当提交一个作业时,首先依据分片大小和文件信息分成若干个不 同的 Map 任务,然后由 Map 任务执行完后进行对中间结果的汇总,此即为 Reduce 任务。其 中 Map 任务划定的分片方法和大小可由用户自己配置,一个分片对应着一个 Map 任务。

Task 的执行过程:

(1)Map 任务的执行过程如下图所示。首先对输入的文件进行分片,得到多个分片,然 后对其按照一定的规则解析成 key/value 对,默认的一个规则是将每行的文本内容解析成 key/value 对。然后调用用户自己编写的 Mapper 类中的 map()方法,每次调用都会产生若干个 key/value 对,将这些中间结果存储在本地。按一定规则,默认为按照 key 分区且只分成一个 区,所以只对应着一个 Reduce 任务。

上一篇:Android平台下基于短信订购恶意软件检测
下一篇:电梯运行调度控制器仿真系统实现

基于Android的电子拍卖系统设计与开发

基于Web应用的致胜公司企业内部培训系统设计

Matlab基于多旋翼飞行器的飞行控制系统设计

基于字典学习的多视图低维相关表示方法研究

基于android通讯与游戏的手...

基于android的环境信息管理系统设计

基于激光超声检测金属材...

2021年什么行业赚钱,适合...

新疆农林高校學生昆虫生...

发酵米粉优势菌株的发酵特性研究

个案管理茬老年糖尿病患...

浅谈农村大气环境保护的制度构建【1868字】

大淘宝网的虚假交易研究

激光模拟训练器材国内外研究现状

日语论文中日酒文化对比研究

淮安市高校足球运动损伤问卷调查表

肢体语言在小学英语教学中的应用浅谈