MapReduce1和Yarn的工作机制
Hadoop中的MapReduce的工作机制分为两种:
- MapReduce 1 也就是Hadoop 2.0之前的工作机制
- YARN
MapReduce 1
构成
MapReduce 1最主要的其实就是jobtracker和tasktracker:
- jobtracker,用来协调作业的运行。它也是一个Java程序,主类是JobTracker。
- tasktracker,用来运行作业划分后的任务。它也是一个Java程序,主类是TaskTracker。
除此之外,MapReduce 1的最顶层包括的实体还有两个:客户端、分布式文件系统。
工作原理
我们先来看一幅图:
这幅图就是MapReduce 1的工作原理。
我们可以看到里面有10个步骤,分别来看看这10个步骤都干了些什么。
- 客户端启动一个job。
- 从jobtracker请求一个新的作业ID。(getNewJobId()方法)
- 检查作业的输出说明并计算作业的输入分片,然后将运行作业所需要的资源都复制到以作业ID命名的目录下。
- 提交作业,告知jobtracker作业准备执行。(submitJob()方法)
- 初始化作业。创建一个表示正在运行作业的对象,用来封装任务和记录信息。
- 获取客户端计算好的输入分片,然后为每个分片创建一个map任务。在此步骤的时候还会创建reduce任务、作业创建任务、作业清理任务。
- tasktracker运行一个简单的循环来定期发送“心跳”给jobtracker,用来充当两者之间的消息通道。
- 准备运行任务。
- 作业的JAR文件本地化。从共享文件系统把作业的JAR文件复制到tasktracker所在的文件系统。
- tasktracker为任务创建一个本地工作目录,并把JAR解压到这。
- tasktracker创建一个TaskRunner实例。
- 启动一个新的JVM来运行每个任务。
- 运行map/reduce。
这就是经典的MapReduce的工作原理。
YARN
构成
YARN比MapReduce更具一般性,实际上MapReduce只是YARN应用的一种形式。
相比经典的MapReduce来说,YARN的顶层包括更多的实体:
- 客户端。
- YARN资源管理器。负责协调集群上计算资源的分配。
- YARN节点管理器。负责启动和监视集群中机器上的计算容器。
- 应用程序master。负责协调运行MapReduce作业的任务。
- 分布式文件系统。
主要是多了一个容器的概念。每一个任务都有一个对应的容器,而且只能在该容器中运行。
工作原理
同样,我们先看一幅图:
从图中可以看出YARN运行MapReduce的过程有11个步骤,我们分别来看看:
- 启动一个job。
- 从资源管理器请求一个新的作业ID。
- 检查作业的输出说明并计算作业的输入分片,然后将作业资源复制到HDFS。
- 通过调用资源管理器的submitApplication()方法提交作业。
- 将请求传递给调度器。
- 调度器分配一个容器。
- 资源管理器在节点管理器的管理下在容器中启动master进程。
- master进程对作业进行初始化。
- 获取计算出的输入分片,为每个分片创建一个map任务。并创建reduce任务。
- master为作业向资源管理器请求一个容器来运行任务。
-
- 调度器为任务分配容器。
- master与节点管理器通信来启动容器。
- 资源本地化。
- 运行map/reduce任务。
这样一个YARN运行的MapReduce的原理也就完整了。
转: http://axuebin.com/blog/2016/02/23/hadoop-mapreduce-yarn/?utm_source=tuicool&utm_medium=referral

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
HDFS基本原理及数据存取实战
--------------------------------------------------------------------------------------------------------------- [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/51622547 作者:朱培 --------------------------------------------------------------------------------------------------------------- 本文主要介绍了hdfs的基本原理、hdfs基本操作、hdfs的读取数据流程、namenode工作机制,rpc编程以及常见的两种必会的面试题等,旨在于全面深入的理解HDFS的基本工作流程并可以开发出简易的HDFS的程序。 一、HDFS简介 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。HDFS体系结...
- 下一篇
《Hadoop进阶》利用Hadoop构建豆瓣图书推荐系统
转载请注明出处: 转载自 Thinkgamer的CSDN博客:blog.csdn.net/gamer_gyt 代码下载地址:点击查看 1:推荐系统概述 2:需求分析:推荐系统的指标设计 3:算法模型:基于物品的协同过滤并行算法设计 4:架构设计:推荐系统架构 5:程序实现:MR2V程序实现 6:推荐系统评估 一、推荐系统概述 推荐系统广泛存在与各大网站上,比如说亚马逊,淘宝等电商类网站上,而且在社交网络上也应用的十分广泛,比如说facebook的你可能认识,微博的好友推荐,也比如说csdn博客的你可能喜欢等等。 这是我目前在做的一个豆瓣图书推荐系统,采用的算法主要是协同过滤算法,使用Python+Django+Mysql进行部署 github地址:点击查看 推荐算法的分类主要包括: 按数据使用划分: 协同过滤算法:UserCF, ItemCF, ModelCF 基于内容的推荐: 用户内容属性和物品内容属性 社会化过滤:基于用户的社会网络关系 按模型划分: 最近邻模型:基于距离的协同过滤算法 Latent Factor Mode(SVD):基于矩阵分解的模型 Graph:图模型,社...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS关闭SELinux安全模块
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路