Apache Hadoop YARN框架概述

一、YARN产生和发展简史

1.1背景

  • 数据、程序、运算资源(内存、CPU)三者组在一起,才能完成数据的计算处理过程。在单机环境下,三者之间协调配合不是太大问题。
  • 为了应对海量数据的处理场景,Hadoop软件出现并提供了分布式处理思想。分布式环境下的三者如何协调好将成为关键。
  • 通过对Hadoop版本演进的简单回顾,可以让我们知道YARN的产生和发展简史,洞悉YARN发展进程。
  • 很多Hadoop的早期用户使用Hadoop的方式与在众多主机上运行桌面应用程序类似。     
    • 在少量几个节点上手工建立一个集群;     
    • 将数据载入Hadoop分布式文件系统(HDFS);     
    • 通过运行MapReduce任务来运算并获得结果;     
    • 然后拆掉集群。
  • 这种方式的一部分原因是没有在Hadoop HDFS上持久存储数据的迫切需求,另一部分原因是没有共享数据和计算结果的动机。

 1.2 Hadoop演进阶段

1.2.1 阶段0:Ad Hoc集群

  • Ad Hoc应当理解为专用的、特定的意思(数仓领域中常理解为即席)。Ad Hoc集群时代标志着Hadoop集群的起源,集群以Ad Hoc、单用户方式建立
  • 后来,随着私人集群的使用和Hadoop容错性的提高,持久的HDFS集群出现,并且实现了HDFS集群的共享,把常用和感兴趣的数据集载入HDFS共享集群中。当共享HDFS成为现实,还没实现共享的计算平台就成为关切对象。
  • 不同于HDFS,为多个组织的多个用户简单设置一个共享MapReduce集群并非易事。尤其是集群下的物理资源的共享很不理想。 

1.2.2 阶段1:HOD集群

  • 为了解决集群条件下的多租户问题, Yahoo发展并且部署了称为“Hadoop on Demand”的平台。
  • Hadoop On Demand (HOD)是一个能在大规模物理集群上供应虚拟Hadoop集群的系统。
  • 在已经分配的节点上, HOD会启动MapReduce和HDFS守护进程来响应用户数据和应用的请求。
  • 主要特点: 用户可以使用HOD来同时分配多个MapReduce集群。
  • 缺点包括: 无法支持数据本地化、资源回收效率低、无动态扩容缩容能力,多租户共享延迟高等。  

1.2.3 阶段2:共享计算集群

  • 共享MapReduce计算集群就是Hadoop 1.x版本里的主要架构模型。
  • 主要组件
    • JobTracker:一个中央守护进程,负责运行集群上的所有作业。
    • TaskTracker:系统里的从进程,根据JobTracker的指令来执行任务。

 

  • 主要弊端: JobTracker身兼多职、压力大(作业数据管理、作业状态记录、作业调度)、可靠性和可用性欠缺(JobTracker单点故障)、计算模型单一(不能万物皆MapReduce)。
  • 且MapReduce框架本身需要迭代优化。但是计算和资源管理绑定在了一起,使得MapReduce的演变比较困难。 

1.2.4 阶段3:YARN集群

  • 针对共享计算集群,JobTracker需要彻底地重写,才能解决扩展性的主要问题。但是,这种重写即使成功了,也不一定能解决平台和用户代码的耦合问题,也不能解决用户对非MapReduce编程模型的需求。如果不做重大的重新设计,集群可用性会继续被捆绑到整个系统的稳定性上。
  • 拆分MapReduce,剥离出资源管理成为单独框架,YARN闪亮登场,MapReduce专注于数据处理,两者解耦合。
  • YARN被设计用以解决以往架构的需求和缺陷的资源管理和调度软件。

对YARN的需求 :

  • 可扩展性:可以平滑的扩展至数万节点和并发的应用。
  • 可维护性:保证集群软件的升级与用户应用程序完全解耦。
  • 多租户:需要支持在同一集群中多个租户并存,同时支持多个租户间细颗粒度地共享单个节点。
  • 位置感知:将计算移至数据所在位置。
  • 高集群使用率:实现底层物理资源的高使用率。
  • 安全和可审计的操作:继续以安全的、可审计的方式使用集群资源。
  • 可靠性和可用性:具有高度可靠的用户交互、并支持高可用性
  • 对编程模型多样化的支持:支持多样化的编程模型,需要演进为不仅仅以MapReduce为中心。
  • 灵活的资源模型:支持各个节点的动态资源配置以及灵活的资源模型。
  • 向后兼容:保持现有的MapReduce应用程序的向后兼容性。

二、YARN简介

2.1简介

Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的Hadoop资源管理器。 YARN是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度。  它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

如何理解通用资源管理系统和调度平台?

  • 资源管理系统:集群的硬件资源,和程序运行相关,比如内存、CPU等。
  • 调度平台:多个程序同时申请计算资源如何分配,调度的规则(算法)。
  • 通用:不仅仅支持MapReduce程序,理论上支持各种计算程序。YARN不关心你干什么,只关心你要资源,在有的情况下给你,用完之后还我。 
  • 可以把Hadoop YARN理解为相当于一个分布式的操作系统平台,而MapReduce等计算程序则相当于运行于操作系统之上的应用程序,YARN为这些程序提供运算所需的资源(内存、CPU等)。
  • Hadoop能有今天这个地位,YARN可以说是功不可没。因为有了YARN ,更多计算框架可以接入到 HDFS中,而不单单是 MapReduce,正式因为YARN的包容,使得其他计算框架能专注于计算性能的提升。
  • HDFS可能不是最优秀的大数据存储系统,但却是应用最广泛的大数据存储系统, YARN功不可没。

三、YARN与MRv1区别

3.1 概述

  • Hadoop从1到2的过程中,最大的变化就是拆分MapReduce,剥离出新的单独组件:YARN。Hadoop3系列架构整体和2系列一致。
  • 在Hadoop1中,MapReduce(MRv1)负责:数据计算、资源管理,身兼多职。
  • 在Hadoop2中,MapReduce(MRv2)负责数据计算,YARN负责资源管理。

由于 MRv1(第一代MapReduce)在扩展性、可靠性、资源利用率和多框架等方面存在明显不足, Apache 开始尝试对 MapReduce 进行升级改造,于是诞生了更加先进的下一代 MapReduce 计算框架 MRv2。

并且在MRv2中,将资源管理任务调度模块单独抽离出来,构建成了一个独立的通用资源管理系统 YARN,而MRv2则专注于数据的计算处理了。

3.2 MRv1介绍

  • MRv1包括三个部分 :运行时环境(JobTracker和TaskTracker)、编程模型(MapReduce)、数据处理引擎(Map Task和Reduce Task).
  • JobTracker 负责资源和任务的管理与调度, TaskTracker 负责单个节点的资源管理和任务执行。
  • MRv1将资源管理和应用程序管理两部分混杂在一起,使得它在扩展性、容错性和多框架支持等方面存在明显缺陷。

3.3 YARN介绍

  • MRv2 重用了MRv1中的编程模型和数据处理引擎。但运行时环境(resourcemanager、nodemanager)被完全重写,由YARN来专管资源管理和任务调度。
  • 并且YARN将程序内部具体管理职责交给一个叫做ApplicationMaster的角色。自己专心于集群资源管理,成为一个通用的资源管理系统。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

江科大STM32入门——UART通信笔记总结

wx:嵌入式工程师成长日记 1、简介 简单双向串口通信有两根通信线(发送端TX和接收端RX)TX与RX要交叉连接当只需单向的数据传输时,可以只接一根通信线当电平标准不一致时,需要加电平转换芯片 传输模式:全双工;时钟&…

KG-CoT:基于知识图谱的大语言模型问答的思维链提示

一些符号定义 知识图谱实体数量: n n n 知识图谱中关系类型数量: m m m 三元组矩阵: M ∈ { 0 , 1 } n n m \textbf{M} \in \{0, 1\}^{n \times n \times m} M∈{0,1}nnm, M i j k 1 M_{ij}^k 1 Mijk​1则说明实体 i i i和实…

超完整Docker学习记录,Docker常用命令详解

前言 关于国内拉取不到docker镜像的问题,可以利用Github Action将需要的镜像转存到阿里云私有仓库,然后再通过阿里云私有仓库去拉取就可以了。 参考项目地址:使用Github Action将国外的Docker镜像转存到阿里云私有仓库 一、Docker简介 Do…

AIGC 新浪潮|Story CN meetups 将于 1 月 10-14 日举办!

随着 Web3 行业发展进入全新阶段,与生成式人工智能(AIGC)技术融合正在创造潜力新星项目。也是目前的互联网生态下,任何普通民众都有权利创作高质量的音乐、艺术、散文和视频内容,带来了用户生成内容(UGC&am…

Python基于YOLOv8和OpenCV实现车道线和车辆检测

使用YOLOv8(You Only Look Once)和OpenCV实现车道线和车辆检测,目标是创建一个可以检测道路上的车道并识别车辆的系统,并估计它们与摄像头的距离。该项目结合了计算机视觉技术和深度学习物体检测。 1、系统主要功能 车道检测&am…

黑马跟学.苍穹外卖.Day04

黑马跟学.苍穹外卖.Day04 苍穹外卖-day04课程内容1. Redis入门1.1 Redis简介1.2 Redis下载与安装1.2.1 Redis下载1.2.2 Redis安装 1.3 Redis服务启动与停止1.3.1 服务启动命令1.3.2 客户端连接命令1.3.3 修改Redis配置文件1.3.4 Redis客户端图形工具 2. Redis数据类型2.1 五种常…

SOLID原则学习,开闭原则

文章目录 1. 定义2. 开闭原则的详细解释3. 实现开闭原则的方法4. 总结 1. 定义 开闭原则(Open-Closed Principle,OCP)是面向对象设计中的五大原则(SOLID)之一,由Bertrand Meyer提出。开闭原则的核心思想是…

filebeat、kafka

elk的架构 es数据库:非关系型数据库,json格式 logstash:收集日志 kibana:图形化的工具 ↓ 以上三种结合起来即为日志收集系统 filebeat 作用:filebeat是一款轻量级的日志收集工具,不依赖java环境&…

Qt重写webrtc的demo peerconnection

整个demo为: 可以选择多个编码方式: cmake_minimum_required(VERSION 3.5)project(untitled LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON)set(CMA…

【Notepad++】Notepad++如何删除包含某个字符串所在的行

Notepad如何删除包含某个字符串所在的行 一,简介二,操作方法三,总结 一,简介 在使用beyoundcompare软件进行对比的时候,常常会出现一些无关紧要的地方,且所在行的内容是变化的,不方便进行比较&…

python无需验证码免登录12306抢票 --selenium(2)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 [TOC](python无需验证码免登录12306抢票 --selenium(2)) 前言 提示:这里可以添加本文要记录的大概内容: 就在刚刚我抢的票:2025年1月8日…

CSS 盒模型

盒模型 CSS盒模型是网页布局的核心概念之一,它描述了网页元素的物理结构和元素内容与周围元素之间的关系。根据W3C规范,每个HTML元素都被视为一个矩形盒子,这个盒子由以下四个部分组成: 内容区(Content area&#xff…

WPF的自定义控件控件学习

引入自定义控件 <controls:Intellibox Style"{StaticResource ListSearch-SearchIntellibox}" Width"95" Margin"0,3" MaxResults"200" …

【含开题报告+文档+PPT+源码】基于springboot的农贸菜市场租位管理系统的设计与实现

开题报告 随着信息技术的快速发展和普及&#xff0c;信息化管理已成为各行业提升运营效率和服质量的重要手段。农贸菜市场作为城市生活的重要组成部分&#xff0c;其管理效率和服务水平直接关系到市民的日常生活体验。传统的农贸菜市场租位管理方式往往存在信息不对称、管理效…

华为路由器、交换机、AC、新版本开局远程登录那些坑(Telnet、SSH/HTTP避坑指南)

关于华为设备远程登录配置开启的通用习惯1、HTTP/HTTPS相关服务 http secure-server enablehttp server enable 2、Telnet服务telnet server enable3、SSH服务stelnet server enablessh user admin authentication-type password 「模拟器、工具合集」复制整段内容 链接&…

【论文阅读-思维链的构造方法02】4.1.2 Automatic Construction-02

提示1&#xff1a;本篇博客中涉及4篇相关论文&#xff0c;预计阅读时间10分钟&#xff0c;望各位友友耐心阅读&#xff5e; 提示2&#xff1a;本篇所有涉及的论文已打包发布&#xff0c;不需要任何积分即可下载&#xff0c;指路 --> 论文集下载地址 大模型技术-思维链CoT …

【GIt原理与使用】Git远程仓库

一、理解分布式版本控制系统 我们目前所说的所有内容&#xff08;工作区&#xff0c;暂存区&#xff0c;版本库等等&#xff09;&#xff0c;都是在本地&#xff01;也就是在你的笔记本或者计算机上。而我们的 Git 其实是分布式版本控制系统&#xff01;什么意思呢&#xff1f…

力扣-数组-88 合并两个有序数组

解析 分别维护指向两个数组的指针&#xff0c;不断往后增加指针即可&#xff0c;主要是边界&#xff0c;然后时间复杂度是。 代码 class Solution { public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {vector <int> new…

家用万兆网络实践:紧凑型家用服务器静音化改造(二)

大家好&#xff0c;这篇文章我们继续分享家里网络设备的万兆升级和静音改造经验&#xff0c;希望对有类似需求的朋友有所帮助。 写在前面 在上一篇《家用网络升级实践&#xff1a;低成本实现局部万兆&#xff08;一&#xff09;》中&#xff0c;我们留下了一些待解决的问题。…

小程序组件 —— 29 组件案例 - 字体图标的使用

这一节主要是完善公司信息区域&#xff0c;我们需要在文本之前添加一些字体图标&#xff0c;这一节我们学习如何在微信小程序中使用字体图标&#xff1b; 在项目中&#xff0c;我们使用的小图标&#xff0c;一般由公司设计师进行设计&#xff0c;设计好之后上传到阿里巴巴矢量…