大数据基础:Hadoop之Yarn重点架构原理

文章目录

Hadoop之Yarn重点架构原理

一、Yarn介绍

二、Yarn架构

三、Yarn任务运行流程

四、Yarn三种资源调度器特点及使用场景


Hadoop之Yarn重点架构原理

一、Yarn介绍

Apache Hadoop Yarn(Yet Another Reasource Negotiator,另一种资源协调者)是Hadoop2.x版本后使用的资源管理器,可以为上层应用提供统一的资源管理平台。

二、Yarn架构

Yarn主要由ResourceManager、NodeManager、ApplicationMaster、Container组成。

  • ResourceManager

ResourceManager是Yarn集群中的中央管理器,负责整个集群的资源分配与调度。ResourceManager负责监控NodeManager节点状态、汇集集群资源,处理Client提交任务的资源请求,为每个Application启动AppliationMaster并监控。

  • NodeManager

NodeManager负责管理每个节点上的资源(如:内存、CPU等)并向ResourceManager报告。当ResourceManager向NodeManager分配一个容器(Container)时,NodeManager负责启动该容器并监控容器运行,此外,NodeManager还会接收AplicationMaster命令为每个Application启动容器(Container)。

  • ApplicationMaster

每个运行在Yarn中的应用程序都会启动一个对应的ApplicationMaster,其负责与ResourceManager申请资源及管理应用程序任务。ApplicationMaster本质上也是一个容器,由ResourceManager进行资源调度并由NodeManager启动,ApplicationMaster启动后会向ResourceManager申请资源运行应用程序,ResourceManager分配容器资源后,ApplicationMaster会连接对应NodeManager通知启动Container并管理运行在Container上的任务。

  • Container

Container 容器是Yarn中的基本执行单元,用于运行应用程序的任务,它是一个虚拟环境,包含应用程序代码、依赖项及运行所需资源(内存、CPU、磁盘、网络)。每个容器都由ResourceManager分配给ApplicationMaster,并由NodeManager在相应的节点上启动和管理。容器的资源使用情况由NodeManager监控,并在必要时向ResourceManager报告。

Yarn核心就是将MR1中JobTracker的资源管理和任务调度两个功能分开,分别由ResourceManager和ApplicationMaster进程实现,ResourceManager负责整个集群的资源管理和调度;ApplicationMaster负责应用程序任务调度、任务监控和容错等。

三、Yarn任务运行流程

  1. 在客户端向Yarn中提交MR 任务,首先会将MR任务资源(Split、资源配置、Jar包信息)上传到HDFS中。

  2. 客户端向ResourceManager申请启动ApplicationMaster。

  3. ResourceManager会选择一台相对不忙的NodeManager节点,通知该节点启动ApplicationMaster(Container)。

  4. ApplicationMaster启动之后,会从HDFS中下载MR任务资源信息到本地,然后向ResourceManager申请资源用于启动MR Task。

  5. ResourceManager返回给ApplicationMaster资源清单。

  6. ApplicationMaster进而通知对应的NodeManager启动Container

  7. Container启动之后会反向注册到ApplicationMaster中。

  8. ApplicationMaster 将Task任务发送到Container 运行,Task任务执行的就是我们写的代码业务逻辑。

四、Yarn三种资源调度器特点及使用场景

  • FIFO调度器(First-In-Fist-Out Scheduler),Yarn中最简单的调度器。FIFO Scheduler 会将提交的应用程序按提交顺序放入一个先进先出的队列中,进行资源分配时,先给队列中最头上的应用分配资源,待头上的应用资源需求满足后再给下一个应用分配资源,以此类推。这种调度器调度资源时,有可能某个资源需求大的应用占用所有集群资源,从而导致其他的应用被阻塞。

  • Capacity调度器(Capacity Schduler)是Yarn中默认配置的资源调度器,允许多租户安全地共享一个大型集群。Capacity调度器中,支持配置多个资源队列,可以为每个资源队列指定最低、最高可使用的资源比例,在进行资源分配时,优先将空闲资源分配给“实际资源/预算资源”比值最低的队列,每个资源队列内部采用FIFO调度策略。

  • Fair调度器(Fair Scheduler)是一个将Yarn资源公平的分配给各个Application的资源调度方式,这种调度方式可以使所有Application随着时间的流逝可以获取相等的资源份额,其设计目标就是根据定义的参数为所有的Application分配公平的资源。

Yarn中FIFO、Capacity、Fair三种资源调度器区别对比如下:

Yarn资源调度器特点适用场景
FIFO调度器

1、简单易懂,无需额外配置。

2、应用按照提交的先后顺序(先进先出)运行。

3、不适合共享集群,每个应用必须等待直到轮到自己运行。

非共享集群,对任务执行顺序要求不高的场景。生产环境一般不用。

Capacity调度器

(开源Yarn默认使用)

1、允许多个组织共享集群资源,每个组织拥有专门的队列。

2、支持队列的层次划分,以及队列资源的灵活配置。

3、可以限制队列的最大容量,缓解资源竞争。

共享集群的场景,多个组织或团队共享同一集群资源的情况。

Fair调度器

(CDH默认使用)

1、公平地为所有运行的应用分配资源,支持多个队列间的资源公平共享。

2、支持动态创建队列,并通过一套规则系统确定应用的放置位置。

3、支持资源的抢占功能,确保资源的公平分配。

1、 多个用户或组织在共享集群中需要公平地获得资源的场景。

2、 对队列级别的资源控制和细粒度调度策略要求较高的环境。


  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/798900.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

优化理论——迭代方法

线性回归建模 训练,预测 { ( x ( i ) , y ( i ) ) } \{(x^{(i)},y^{(i)})\} {(x(i),y(i))} ⼀个训练样本, { ( x ( i ) , y ( i ) ) ; i 1 , ⋯ , N } \{(x^{(i)},y^{(i)});i1,\cdots ,N\} {(x(i),y(i));i1,⋯,N} 训练样本集 { ( x 1 ( i ) , x 2 ( i…

爬虫管理解决方案:让数据收集变得高效且合规

一、为何数据收集的效率与合规性同等重要? 随着大数据技术的飞速发展,数据收集已成为企业决策与市场洞察的核心驱动力。然而,在信息海洋中精准捕捞的同时,如何确保这一过程既高效又不触碰法律的红线,是每个数据实践者…

vue实现动态图片(gif)

目录 1. 背景 2. 分析 3. 代码实现 1. 背景 最近在项目中发现一个有意思的小需求,鼠标移入一个盒子里,然后盒子里的图就开始动起来,就像一个gif一样,然后鼠标移出,再按照原来的变化变回去,就像变形金刚…

YOLOv5和LPRNet的车牌识别系统

车牌识别系统 YOLOv5和LPRNet的车牌识别系统结合了深度学习技术的先进车牌识别解决方案。该系统整合了YOLOv5目标检测框架和LPRNet文本识别模型 1. YOLOv5目标检测框架 YOLO是一种先进的目标检测算法,以其实时性能和高精度闻名。YOLOv5是在前几代基础上进行优化的…

树莓派关机

文件 shutdown.sh #!/usr/bin/bash sudo shutdown -r nowpython 文件开头添加 #!/usr/bin/python3

Apache AGE 从文件导入图

您可以使用以下说明从文件创建图形。本文档介绍了: 包含从文件加载图形的函数的当前分支的信息使图形从文件创建的函数的说明作为输入的加载函数的CSV文件的结构,以及相关的注意事项 以及从文件加载国家和城市的简单源代码示例。 用户可以通过两个步骤…

从课本上面开始学习的51单片机究竟有什么特点,在现在的市场上还有应用吗?

引言 51单片机,作为一种经典的微控制器,被广泛应用于各种嵌入式系统中。尽管如今ARM架构的高性能低成本单片机在市场上占据主导地位,但51单片机凭借其独特的优势依然在某些领域保持着应用价值。本文将深入探讨51单片机的特点、架构、应用以及…

信必优收到著名生命科学前沿客户表扬信

近日,信必优收到著名生命科学前沿客户表扬信,客户表扬信必优员工在岗位上勤奋敬业、积极主动,圆满完成了既定的工作任务,在多个项目上展现出卓越技术能力和团队合作精神;其对工作的热情和对质量的追求给整个团队树立了…

WEB07Vue+Ajax

1. Vue概述 Vue(读音 /vjuː/, 类似于 view),是一款用于构建用户界面的渐进式的JavaScript框架(官方网站:https://cn.vuejs.org)。 在上面的这句话中呢,出现了三个词,分别是&#x…

05:中断

中断 1、定时器T0中断1.1、定时器中断触发1.2、案例:通过定时器T0中断来实现灯间隔1s亮灭 2、外部中断2.1、外部中断的触发2.2、案例:使用外部中断0通过震动传感器控制LED1的亮灭 1、当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求&#xf…

Linux 扩展硬盘容量

根分区的硬盘容量不够了需要添加容量 扩展硬盘容量前提是需要虚拟机关机才能进行以下操作 在虚拟中找到虚拟机设置 >> 点击硬盘 >> 选择扩展 >> 输入自已要扩展的大小 >> 确定 这些设置好之后,启动虚拟机 fdisk /dev/sda n p 三个回车…

数据库作业d8

要求: 一备份 1 mysqldump -u root -p booksDB > booksDB_all_tables.sql 2 mysqldump -u root -p booksDB books > booksDB_books_table.sql 3 mysqldump -u root -p --databases booksDB test > booksDB_and_test_databases.sql 4 mysql -u roo…

在Windows中搭建Docker环境Docker Desktop(保姆级)

在Windows中搭建Docker环境Docker Desktop(保姆级) 文章目录 在Windows中搭建Docker环境Docker Desktop(保姆级)一、Docker Desktop是什么?二、Docker Desktop下载与安装①:下载②:安装③&#…

HTTP背后的故事:理解现代网络如何工作的关键(一)

一.HTTP是什么 概念 : 1.HTTP ( 全称为 " 超文本传输协议 ") 是一种应用非常广泛的 应用层协议。 2.HTTP 诞生与1991年. 目前已经发展为最主流使用的一种应用层协议. 3.HTTP 往往是基于传输层的 TCP 协议实现的 . (HTTP1.0, HTTP1.1, HTTP2.0 均为 T…

Python应用开发——30天学习Streamlit Python包进行APP的构建(15):优化性能并为应用程序添加状态

Caching and state 优化性能并为应用程序添加状态! Caching 缓存 Streamlit 为数据和全局资源提供了强大的缓存原语。即使从网络加载数据、处理大型数据集或执行昂贵的计算,它们也能让您的应用程序保持高性能。 本页仅包含有关 st.cache_data API 的信息。如需深入了解缓…

昇思25天学习打卡营第22天|GAN图像生成

今天是参加昇思25天学习打卡营的第22天,今天打卡的课程是“GAN图像生成”,这里做一个简单的分享。 1.简介 今天来学习“GAN图像生成”,这是一个基础的生成式模型。 生成式对抗网络(Generative Adversarial Networks,GAN)是一种…

【Django+Vue3 线上教育平台项目实战】构建课程详情页与集成视频播放功能

文章目录 前言一、课程列表页面a.后端代码b.前端代码 二、课程详情页面a. 视频播放功能的集成1.获取上传视频的链接地址2.集成在前端页面中1>使用vue-alipayer视频播放组件2>使用video标签 b. 页面主要内容展示1.后端代码1>分析表2>核心逻辑 2.前端代码3.效果图 前…

Java中的Filter流:理解与应用

Java中的Filter流:理解与应用 1、字节Filter流1.1 FilterInputStream1.2 FilterOutputStream 2、字符Filter流2.1 FilterReader2.2 FilterWriter 3、使用Filter流的好处 💖The Begin💖点点关注,收藏不迷路💖 在Java的…

算法思想总结:字符串

一、最长公共前缀 . - 力扣&#xff08;LeetCode&#xff09; 思路1&#xff1a;两两比较 时间复杂度mn 实现findcomon返回两两比较后的公共前缀 class Solution { public:string longestCommonPrefix(vector<string>& strs) {//两两比较 string retstrs[0];size…

信通院全景图发布 比瓴科技领跑软件供应链安全,多领域覆盖数字安全服务

近日&#xff0c;中国信息通信研究院在2024全球数字经济大会—数字安全生态建设专题论坛正式发布首期《数字安全护航技术能力全景图》&#xff08;以下简称全景图&#xff09;。 比瓴科技入选软件供应链安全赛道“开发流程安全管控、交互式安全测试、静态安全测试、软件成分分…