MapReduce工作机制
MapReduce是什么?
MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,MapReduce程序本质上是并行运行的,因此可以解决海量数据的计算问题.
MapReduce任务过程被分为两个处理阶段:map阶段和reduce阶段.每个阶段都以键值对作为输入和输出.用户只需要实现map()和reduce()两个函数即可实现分布式计算.
MapReduce的组成部分
1、JobClient(客户端)
用户编写的MapReduce程序通过客户端提交到JobTracker
2、JobTracker
这是一个master服务,程序启动后,JobTracker负责资源监控和作业调度。JobTracker监控所有的TaskTracker和job的健康状况,一旦发生失败,即将之转移到其他节点上,同时JobTracker会跟踪任务的执行进度、资源使用量等信息,并将这些信息告诉任务调度器,而调度器会在资源出现空闲时,选择合适的任务使用这些资源。一个Hadoop集群只有一个JobTracker,存在单点故障的可能。
3、TaskTracker
运行在多个节点上的slaver服务。TaskTracker主动与JobTracker通信接受作业,并负责直接执行每个任务。TaskTracker 会周期性地通过Heartbeat将本节点上资源的使用情况和任务的运行进度汇报给JobTracker,同时接收JobTracker 发送过来的命令并执行相应的操作(如启动新任务、杀死任务等)。
MapReduce作业和任务
MapReduce作业(job)是用户提交的最小单位,而Map任务/Reduce任务(task)是MapReduce计算的最小单位。
当用户向Hadoop提交一个MapReduce作业时,JobTracker的作业分解模块会将其拆分为任务交由各个TaskTracker执行,在MapReduce计算框架中,任务分为两种——Map任务和Reduce任务。
一个TaskTracker能够启动的任务数量是由TaskTracker配置的任务槽(slot)决定的,槽又分为Map槽和Reduce槽,并且Map任务只能使用Map槽,Reduce任务只能使用Reduce槽。
MapReduce流程分析

作业提交:
1.由JobClient启动一个作业。
2.向JobTracker请求一个作业ID。
3.将运行作业所需要的资源(包括作业jar文件、第三方jar文件等)复制到HDFS下的特定目录,供作业运行时使用。
4.调用JobTracker的submitJob方法告知JobTracker作业准备执行。
作业初始化:
5.当JobTracker收到对其submitJob方法的调用后,会将此调用交由作业调度器进行调度,并对其初始化,创建一个表示正在运行作业的对象。
6.为了给TaskTracker分配任务,必须先从HDFS系统中获取已计算好的输入分片信息。然后创建Map任务和Reduce任务。
任务分配:
7.TaskTracker每隔一段时间会给JobTracker发送一个心跳,告诉JobTracker它是否存活、节点资源使用情况、各个任务的状态等,如果JobTracker觉得TaskTracker已经准备好了,那么JobTracker会给TaskTracker分配一个新任务。
任务执行:
8.TaskTracker在接到启动任务的命令后,会把作业的jar文件、第三方jar文件等作业所需要的文件复制到TaskTracker所在的节点的本地目录。
9.接着TaskTracker会新建一个TaskRunner实例来运行任务,TaskRunner启动一个JVM(步骤9)运行每个任务(步骤10)。
任务完成:
当JobTracker收到最后一个任务已完成的通知后(通常是Reduce任务),便把作业的状态设置为成功,JobClient会将作业完成的消息在控制台打印。最后JobTracker会清空作业的工作状态,并让TaskTracker也清空作业的工作状态。
参考:
http://weixiaolu.iteye.com/blog/1474172
《hadoop海量数据处理技术详解与项目实战》
MapReduce工作机制的更多相关文章
- hadoop MapReduce 工作机制
摸索了将近一个月的hadoop , 在centos上配了一个伪分布式的环境,又折腾了一把hadoop eclipse plugin,最后终于实现了在windows上编写MapReduce程序,在cen ...
- MapReduce工作机制——Word Count实例(一)
MapReduce工作机制--Word Count实例(一) MapReduce的思想是分布式计算,也就是分而治之,并行计算提高速度. 编程思想 首先,要将数据抽象为键值对的形式,map函数输入键值对 ...
- hadoop知识点总结(一)hadoop架构以及mapreduce工作机制
1,为什么需要hadoop 数据分析者面临的问题 数据日趋庞大,读写都出现性能瓶颈: 用户的应用和分析结果,对实时性和响应时间要求越来越高: 使用的模型越来越复杂,计算量指数级上升. 期待的解决方案 ...
- MapReduce06 MapReduce工作机制
目录 5 MapReduce工作机制(重点) 5.1 MapTask工作机制 5.2 ReduceTask工作机制 5.3 ReduceTask并行度决定机制 手动设置ReduceTask数量 测试R ...
- 浅谈MapReduce工作机制
1.MapTask工作机制 整个map阶段流程大体如上图所示.简单概述:input File通过getSplits被逻辑切分为多个split文件,通通过RecordReader(默认使用lineRec ...
- [hadoop读书笔记] 第五章 MapReduce工作机制
P205 MapReduce的两种运行机制 第一种:经典的MR运行机制 - MR 1 可以通过一个简单的方法调用来运行MR作业:Job对象上的submit().也可以调用waitForCompleti ...
- yarn/mapreduce工作机制及mapreduce客户端代码编写
首先需要知道的就是在老版本的hadoop中是没有yarn的,mapreduce既负责资源分配又负责业务逻辑处理.为了解耦,把资源分配这块抽了出来,形成了yarn,这样不仅mapreudce可以用yar ...
- 图文详解MapReduce工作机制
job提交阶段 1.准备好待处理文本. 2.客户端submit()前,获取待处理数据的信息,然后根据参数配置,形成一个任务分配的规划. 3.客户端向Yarn请求创建MrAppMaster并提交切片等相 ...
- MapReduce的工作机制
<Hadoop权威指南>中的MapReduce工作机制和Shuffle: 框架 Hadoop2.x引入了一种新的执行机制MapRedcue 2.这种新的机制建议在Yarn的系统上,目前用于 ...
随机推荐
- Bring Your Charts to Life with HTML5 Canvas and JavaScript
Bring Your Charts to Life with HTML5 Canvas and JavaScript Bring Your Charts to Life with HTML5 Canv ...
- android笔试题集2
1.请谈一下Android系统的架构.答:Android系统采用了分层架构,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和linux核心层. 2.谈谈android大众常用的五种布局.答 ...
- C的|、||、&、&&、异或、~、!运算(转)
位运算 位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果. 位运算符有: &(按位与).|(按位或) ...
- lua实现多继承
http://my.oschina.net/u/156466/blog/401576local class1 = {} function class1:new() local obj = {} set ...
- 3第一周课后练习·阅读计划(3)-使用函数来访问私有数据成员
/* * Copyright (c) 2015, 计算机科学学院,烟台大学 * All rights reserved. * 文件名:test.cpp * 作 靠:刘畅 * 完成日期:2015年 3 ...
- linux/module.h: No such file or directory 内核模块编译过程
1.缺少Linux kernel头文件 To install just the headers in Ubuntu: sudo apt-get install linux-headers-$(unam ...
- mysql 5.7忘记密码处理
vi /etc/my.cnf在[mysqld]下面增加一行skip-grant-tables 重启 /etc/init.d/mysqld restart /usr/local/mysql/bin/m ...
- 关于asp.net简单的下载问题
关于asp.net的下载,只需将打开相应的文件路径就能在浏览器上实现下载功能,比如项目的同级目录上有一个文件 苍老师.zip<a href="苍老师.zip">< ...
- [记录]关于vertical-align单/多选框与说明文字对齐效果
效果图: 第一张使用label标签,第二张没有使用.. 使用label标签,middle对齐方式的单选框下降了1px 而没有使用label标签,sub对齐方式的 却 居 中 了 =_= 不太理解 ...
- iframe 重新加载闪过白块问题
在使用iframe时,iframe背景为白块,刷新时也会闪过白块.如果刷新时间长,就会一直出现白块,让人很烦恼,通过网上搜资料,测试最终解决方法如下所示,注意主要针对IE浏览器测试. 一.iframe ...