当前位置: 首页 > news >正文

Hadoop-Yarn

一、概述
1. 产生原因:
a. 内因:Hadoop1.0中,JobTracker既要负责任务调度和监控还要负责集群的资源管理,任务比较多,就导致任务量增多的时候效率成倍下降甚至崩溃、
b. 外因:随着Hadoop以及分布式的发展,产生了越来越多的计算框架,这些框架之间的资源分配容易产生冲突,所以需要提供一套统一的资源分配的框架
2. YARN - Yet Another Resource Negotiator— 迄今另一个资源调度器
3. Yarn负责资源管理和任务调度
a. ResourceManager:资源管理
b. ApplicationMaster:任务管理
c. NodeManager:执行任务

二、Job的执行流程
1. 客户端将Job提交给ResourceManager
2. ResourceManager在收到Job任务之后会等待NodeManager的心跳
3. 在ResourceManager收到NodeManager的心跳之后会将Job交给这个NodeManager,同时在这个NodeManager上开启一个ApplicationMaster,将Job分配给这个ApplicationMaster - 在Yarn中,每一个Job任务会对应一个单独的ApplicationMaster
4. ApplicationMaster收到Job之后会对这个Job进行划分,划分好之后会向ResourceManager请求执行资源。请求的资源数量要考虑副本数量。例如,如果一个任务划分成5个MapTask以及2个ReduceTask,那么默认情况下在申请资源的时候会申请17份资源,但是注意ResourceManager会只返回7份资源
5. ResourceManager收到请求之后会将资源封装成Container对象发送给ApplicationMaster
6. ApplicationMaster收到Container之后会对资源进行二次分配,分配给具体的子任务
7. ApplicationMaster会将子任务分发给NodeManager执行,并且会监控这些任务的执行情况。每一个ApplicationMaster只监控自己的任务,不监控其他的ApplicationMaster的任务
8. 当子任务执行失败的时候,这个子任务所占用的资源也会被释放。ApplicationMaster在监控到这个任务失败的时候会试图重启这个子任务,在重启之前,ApplicationMaster会向ResourceManager重新为这个子任务来申请资源
9. 注意:
a. 在Yarn体系结构中,ResourceManager管理ApplicationMaster,ApplicationMaster管理子任务
b. 默认情况下,每份资源中包含1G内存一个1个CPU核,即允许每一个子任务占用1G内存以及1个CPU核
在这里插入图片描述

相关文章:

  • mysql面试题
  • Vue-条件渲染和循环渲染
  • 二、前端-VUE(2)
  • 在腾讯云服务器的Centos上从零开始部署并运行TinyWebServer服务器,过程记录(非常详细)
  • springboot系列(二十):如何通过redis实现手机号验证码功能 |超级详细,建议收藏
  • 原始套接字
  • 【C语言刷LeetCode】1953. 你可以工作的最大周数(M)
  • 猿创征文|Python基础——Visual Studio版本——Web开发
  • 【C语言刷LeetCode】395. 至少有 K 个重复字符的最长子串(M)
  • 利用 HomeAssistant 实现电脑远程开关机
  • 练习31-35:多表关联查询、多条件自连接查询、子查询、窗口函数等
  • windows下安装protocol buffer
  • Kubernetes 调度器学习
  • Android ADB常用命令
  • 基于51单片交通灯控制器_紧急+行人+总开关
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Apache Spark Streaming 使用实例
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • ES6--对象的扩展
  • Intervention/image 图片处理扩展包的安装和使用
  • Js基础知识(四) - js运行原理与机制
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • Making An Indicator With Pure CSS
  • Terraform入门 - 3. 变更基础设施
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 少走弯路,给Java 1~5 年程序员的建议
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • hi-nginx-1.3.4编译安装
  • Java数据解析之JSON
  • postgresql行列转换函数
  • zabbix3.2监控linux磁盘IO
  • $NOIp2018$劝退记
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (NSDate) 时间 (time )比较
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (一)u-boot-nand.bin的下载
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .sys文件乱码_python vscode输出乱码
  • ??javascript里的变量问题
  • [2669]2-2 Time类的定义
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [C/C++]关于C++11中的std::move和std::forward
  • [CERC2017]Cumulative Code
  • [CTF]2022美团CTF WEB WP
  • [html] 动态炫彩渐变背景
  • [IE编程] IE 是如何决定Accept-Language 属性的
  • [Invalid postback or callback argument]昨晚调试程序时出现的问题,MARK一下
  • [JavaScript]_[初级]_[关于forin或for...in循环语句的用法]
  • [Lucas定理]【学习笔记】
  • [MFC] MFC消息机制的补充