Hadoop MapReduce两种架构 以及 YARN
一、MRv1
Master - Slave 模式
存在JobTracker单点失败的问题,在YARN得到了解决。

主要包含4部分:JobTracker,TaskTracker,Task,Client
JobTracker:负责整个MR集群的资源监控和作业调度,集群的Master。它把任务进度 和 资源使用量告诉调度器TaskScheduler,由调度器来计划如何调度,调度器是个可挺拔模块。
TaskTracker:负责周期性的向JobTracker汇报每个节点的状况,并执行JobTracker发来的命令。TaskTracker使用slot来等量划分节点上的资源(CPU和内存),slot分为map slot 和 reduce slot两种,分别提供给map task 和 reduce task使用。
Task:分为MapTask 和 ReduceTask两种,由TaskTracker启动。通常一个Task只使用一个slot,但也可使用多个。
作业提交过程:

1、首先在客户端启动作业;
2、向JobTracker请求一个Job ID;
3、接着将运行作业所需要的资源文件复制到HDFS上,主要是作业的jar包、配置信息、输入划分等;这些文件都存放在JobTracker专门为该作业创建的文件夹中。文件名为作业ID。Jar默认有10个副本,输入划分告诉JobTracker有多少个map任务等信息。
4、之后客户端会再向JobTracker正式提交作业,JobTracker会将作业放在一个作业队列中,等待调度。当调度到这个作业时,会先根据划分信息为每个split创建一个map任务,并交给TaskTracker来执行。
5、TaskTracker会每隔一段时间会给JobTracker汇报作业的进度状况。当最后一个任务完成时,便把该作业置为成功,并反馈给客户端。
二、MRv2-Yarn
把资源管理 和 应用程序管理 剥离出来;划分为两个独立的守护进程,管理集群的资源使用 和 管理运行任务的生命周期。

主要由4个部分组成:
ResourceManager:控制整个集群 并 管理应用程序向基础计算资源的分配。将各个资源部分(cpu,内存,带宽等)分配到各个NodeManager;与AM一起分配资源;与NM一起启动并监视它们的应用程序;MRv1中的JobTracker;
ApplicationManager:管理一个在YARN中运行的应用程序的实例;负责协调来自RM的资源分配;与NM一起监视容器的执行和资源的使用。MRv1中的TaskTracker
NodeManager:管理YARN集群中的节点,监视一个容器的状态和节点资源使用。
Container:YARN中资源的抽象(cpu,内存,网络等),每个任务的执行都放在一个Container里。
作业运作流程:

三、任务调度算法
1、先入先出FIFO:Hadoop 中默认的调度器,它先按照作业的优先级高低,再按照到达时间的先后选择被执行的作业。
1、公平调度:是指一个用户作业池中的Job公平地调度,尽可能保证每个Job所有均等的处理时间;可设置每个用户池间的权重(不会因为提交作业多而占更多的资源),动态自适应性。每个用户作业池中有多个作业同时运行。
2、容量池调度:是指限制每个用户的作业队列能使用的资源量,每上队列中使用FIFO调度,静态调度。每个用户作业队列中只有一个作业运行。
Hadoop MapReduce两种架构 以及 YARN的更多相关文章
- 基于两种架构的ETL实现及ETL工具选型策略
企业信息化建设过程中,业务系统各自为政.相互独立造成的"数据孤岛"现象尤为普遍,业务不集成.流程不互通.数据不共享--.这给企业进行数据的分析利用.报表开发等带来了巨大困难.在此情 ...
- smaller programs should improve performance RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构 区别示例
COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION In this section, we l ...
- JavaWeb前置知识 : 动态和静态的区别、两种架构、常见状态码
JavaWeb程序设计(一) : 前置知识 1.动态网页与静态网页的区别: a.不要和是否有"动感"混为一谈. b.是否随着时间.地点.用户操作的改变而改变 (例如 : 在百度上搜 ...
- 下一代Apache Hadoop MapReduce框架的架构
背景 随着集群规模和负载增加,MapReduce JobTracker在内存消耗,线程模型和扩展性/可靠性/性能方面暴露出了缺点,为此需要对它进行大整修. 需求 当我们对Hadoop MapReduc ...
- 你知道C/S和B/S两种架构有什么区别吗?
C/S和B/S,是再普通不过的两种软件架构方式,都可以进行同样的业务处理,甚至也可以用相同的方式实现共同的逻辑.既然如此,为何还要区分彼此呢?那我们就来看看二者的区别和联系. 一.C/S 架构 ...
- C/S和B/S两种架构区别与优缺点分析
C/S和B/S,是再普通不过的两种软件架构方式,都可以进行同样的业务处理,甚至也可以用相同的方式实现共同的逻辑.既然如此,为何还要区分彼此呢?那我们就来看看二者的区别和联系. 一.C/S 架构 1. ...
- ETL的两种架构——ETL架构和ELT架构优劣势对比
导读: 作为现代企业和组织机构的重要资源,信息是进行科学管理与决策分析的基础.ETL 则是把数据转换为信息.知识的关键步骤之一.在 AI 应用场景下,数据集成有哪些特点?随着 AI 应用场景越来越 ...
- ETL的两种架构(ETL架构和ELT架构)
ETL ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract).转换(transform).加载(load)至目的端的过程.ETL一词 ...
- MapReduce两种执行环境介绍:本地测试环境,服务器环境
本地测试环境(windows):1.在windows下配置hadoop的环境变量2.拷贝debug工具(winutils.exe)到hadoop目录中的bin目录,注意winutils.exe的版本要 ...
随机推荐
- 算法复习——求最长不下降序列长度(dp算法)
题目: 题目背景 161114-练习-DAY1-AHSDFZ T2 题目描述 有 N 辆列车,标记为 1,2,3,…,N.它们按照一定的次序进站,站台共有 K 个轨道,轨道遵从先进先出的原则.列车进入 ...
- TeraTerm设定(解决日文乱码问题)
首先,字体Font的MS Gothic是有Japanese的,设置为这个比较保险. 其次,在General Setup里将Language设为:English. 原理是什么我也不清楚,试了几个选择,就 ...
- rest-assured 将log()中的信息打印到log日志中去的方法
rest-assured 将log()中的信息打印到log日志中去的方法: ============方法1============== PrintStream fileOutPutStream = n ...
- 16.1112 模拟考试 T1
加密[问题描述]有一种不讲道理的加密方法是: 在字符串的任意位置随机插入字符. 相应的,不讲道理的解密方法就是从字符串中恰好删去随机插入的那些字符.给定原文s和加密后的字符串t,求?有多少子串可以通过 ...
- noj 2069 赵信的往事 [yy题 无限gcd]
njczy2010 2069 Accepted 31MS 224K 1351Byte G++ 2014-11-13 13:32:56.0 坑爹的无限gcd,,,尼玛想好久,原来要x对y算一次,y再 ...
- C语言函数调用及栈帧结构
source:http://blog.csdn.net/qq_29403077/article/details/53205010 一.地址空间与物理内存 (1)地址空间与物理内存是两个完全不同的概念, ...
- sql 注入 及 in 注入
原文地址: http://www.cnblogs.com/lzrabbit/archive/2012/04/22/2465313.html 除了校验参数内容,过滤长度和sql关键字. 解决in条件拼接 ...
- Day 11 正则表达式
正则表达式 一.简介 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配到的行打印出来.grep全称是Globally search for a Regular ...
- 三国武将查询系统 //Java 访问 数据库
import java.awt.*; import javax.swing.*; import java.awt.event.ActionListener; import java.awt.event ...
- 大整数类BIGN的设计与实现 C++高精度模板
首先感谢刘汝佳所著的<算法竞赛入门经典>. 众所周知,C++中储存能力最大的unsigned long long 也是有着一个上限,如果我们想计算非常大的整数时,就不知所措了,所以,我写了 ...