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的版本要 ...
随机推荐
- 【HDOJ5978】To begin or not to begin(概率)
题意:有k个黑球和1个红球,两个轮流抽,抽到红球算赢,问先手赢的概率大还是后手大还是相等 k<=1e5 思路:手算前几项概率 大胆猜想 #include<cstdio> #inclu ...
- 【HDOJ5979】Convex(三角函数)
题意:n个点在一个半径为R的圆上,给出这n个点顺时针的夹角差值,求这n个点的凸包面积 n<=10,R<=10 思路:S=1/2*sinθ*a*b 角度转弧度再用sin C++有点小毛病,叫 ...
- 解析XML字符串为json对象
var overtime='<?xml version="1.0" encoding="UTF-8"?><response><co ...
- (1)git
1.创建一个版本库 #创建一个文件夹 E:\>mkdir pythonGit #进入文件夹 E:\>cd pythonGit #把此目录创建成git版本库 E:\pythonGit> ...
- [bzoj1345][Baltic2007]序列问题_单调栈
bzoj-1345 Baltic-2007 序列问题 题目大意:对于一个给定的序列a1,…,an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用一个元素max(ai,ai ...
- Codeforces Round #321 (Div. 2) E
终于补好了. 题目链接: http://codeforces.com/contest/580/problem/E E. Kefa and Watch time limit per test 1 sec ...
- 针对JedisShardInfo中无法修改db的解决办法
package com.ldr.bean; import java.lang.reflect.Field; import redis.clients.jedis.JedisShardInfo; pub ...
- 【Java TCP/IP Socket】应用程序协议中消息的成帧与解析(含代码)
程序间达成的某种包含了信息交换的形式和意义的共识称为协议,用来实现特定应用程序的协议叫做应用程序协议.大部分应用程序协议是根据由字段序列组成的离散信息定义的,其中每个字段中都包含了一段以位序列编码(即 ...
- Ubuntu官方Wiki教程资源
前言:通常学习一样新知识时,最快的方式是通过搜索引擎然后以最快的方式拿枪上战场,如果接下来还一直依赖搜索引擎去打,那么你会发现自己永远都在打游击:那么如果要解决这个问题,必须要学会系统的学习,只有连贯 ...
- SUPEROBJECT序列数据集为JSON
// SUPEROBJECT 序列数据集 cxg 2017-1-12// {"data":[{"c1":1,"c2":1}]};// DEL ...