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的角色。自己专心于集群资源管理,成为一个通用的资源管理系统。

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

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

相关文章

妙用编辑器:把EverEdit打造成一个编程学习小环境

1 妙用编辑器:把EverEdit打造成一个编程学习小环境 1.1 应用场景 最近在学习Python语言,由于只是学习和练习,代码规模很小,不想惊动PyCharm、VSCode、WingIDE这些重型武器,只想轻快的敲些代码,记事本虽好&…

使用RSyslog将Nginx Access Log写入Kafka

个人博客地址:使用RSyslog将Nginx Access Log写入Kafka | 一张假钞的真实世界 环境说明 CentOS Linux release 7.3.1611kafka_2.12-0.10.2.2nginx/1.12.2rsyslog-8.24.0-34.el7.x86_64.rpm 创建测试Topic $ ./kafka-topics.sh --zookeeper 192.168.72.25:2181/k…

笔记本电脑 选购 回收 特权模式使用 指南

笔记本电脑 factor 无线网卡:有些笔记本无法检测到特定频段的信息,会导致连不上校园网 sudo iwlist wlp2s0 scan | grep Frequency > net.txt cat net.txt>表示用终端输出覆盖后续文件,>>表示添加到后续文件的末尾 一种更简…

【python A* pygame 格式化 自定义起点、终点、障碍】

pip install pygame 空格键:运行 A* 算法。CtrlC 键:清空路径。CtrlS 键:保存当前地图到 map.json 文件。CtrlL 键:从 map.json 文件加载地图。 import pygame import json from queue import PriorityQueue from tkinter import…

Mac——Docker desktop安装与使用教程

摘要 本文是一篇关于Mac系统下Docker Desktop安装与使用教程的博文。首先介绍连接WiFi网络,然后详细阐述了如何在Mac上安装Docker,包括下载地址以及不同芯片版本的选择。接着讲解了如何下载基础镜像和指定版本镜像,旨在帮助用户在Mac上高效使…

OpenCV的对比度受限的自适应直方图均衡化算法

OpenCV的对比度受限的自适应直方图均衡化(CLAHE)算法是一种图像增强技术,旨在改善图像的局部对比度,同时避免噪声的过度放大。以下是CLAHE算法的原理、步骤以及示例代码。 1 原理 CLAHE是自适应直方图均衡化(AHE&…

解决Qt打印中文字符出现乱码

在 Windows 平台上,默认的控制台编码可能不是 UTF-8,这可能会导致中文字符的显示问题。 下面是在 Qt 应用程序中设置中文字体,并确保控制台输出为 UTF-8 编码: 1. Qt 应用程序代码 在 Qt 中,我们可以使用 QApplic…

腾讯云AI代码助手编程挑战赛-厨房助手之AI大厨

腾讯云AI代码助手编程挑战赛-厨房助手之AI大厨 作品简介 身处当今如火箭般迅猛发展的互联网时代,智能聊天助手已然化身成为提升用户体验的关键利器,全方位渗透至人们的数字生活。 紧紧跟随着这股汹涌澎湃的时代浪潮,我毅然投身于极具挑战性…

Soildworks的学习【2025/1/12】

右键空白处,点击选项卡,即可看到所有已调用的选项卡: 点击机械小齿轮选项卡,选择文档属性,选择GB国标: 之后点击单位,选择MMGS毫米单位: 窗口右下角有MMGS,这里也可以选择…

BUUCTF:web刷题记录(1)

目录 [极客大挑战 2019]EasySQL1 [极客大挑战 2019]Havefun1 [极客大挑战 2019]EasySQL1 根据题目以及页面内容,这是一个sql注入的题目。 直接就套用万能密码试试。 admin or 1 # 轻松拿到flag 换种方式也可以轻松拿到flag 我们再看一下网页源码 这段 HTML 代码…

Flask----前后端不分离-登录

文章目录 扩展模块flask-wtf 的简单使用定义用户数据模型注册与登录会话保持cookie方式session方式基于session的登录 flask-login实现登录、登出代码目录 扩展模块 flask-sqlalchmy,连接数据库flask-login,处理用户的登录,认证flask-sessio…

springboot + vue+elementUI图片上传流程

1.实现背景 前端上传一张图片&#xff0c;存到后端数据库&#xff0c;并将图片回显到页面上。上传组件使用现成的elementUI的el-upload。、 2.前端页面 <el-uploadclass"upload-demo"action"http://xxxx.xxx.xxx:9090/file/upload" :show-file-list&q…

深度学习张量的秩、轴和形状

深度学习张量的秩、轴和形状 秩、轴和形状是在深度学习中我们最关心的张量属性。 秩轴形状 秩、轴和形状是在深度学习中开始使用张量时我们最关心的三个属性。这些概念相互建立&#xff0c;从秩开始&#xff0c;然后是轴&#xff0c;最后构建到形状&#xff0c;所以请注意这…

Observability:将 OpenTelemetry 添加到你的 Flask 应用程序

作者&#xff1a;来自 Elastic jessgarson 待办事项列表可以帮助管理与假期计划相关的所有购物和任务。使用 Flask&#xff0c;你可以轻松创建待办事项列表应用程序&#xff0c;并使用 Elastic 作为遥测后端&#xff0c;通过 OpenTelemetry 对其进行监控。 Flask 是一个轻量级…

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(五)

文章目录 一、学生管理模块功能实现1、添加学生功能实现1.1 页面设计1.2 前端功能实现1.3 后端功能实现1.4 效果展示2、学生管理功能实现2.1 页面设计2.2 前端功能实现2.3 后端功能实现2.3.1 后端查询接口实现2.3.2 后端编辑接口实现2.3.3 后端删除接口实现2.4 效果展示二、代码…

使用Cilium/eBPF实现大规模云原生网络和安全

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 目录 抽象 1 Trip.com 云基础设施 1.1 分层架构 1.2 更多细节 2 纤毛在 Trip.com 2.1 推出时间表 2.2 自定义 2.3 优化和调整 2.3.1 解耦安装 2.3.2 避免重试/重启风暴 2.3.3 稳定性优先 2…

CTFshow—文件包含

Web78-81 Web78 这题是最基础的文件包含&#xff0c;直接?fileflag.php是不行的&#xff0c;不知道为啥&#xff0c;直接用下面我们之前在命令执行讲过的payload即可。 ?filephp://filter/readconvert.base64-encode/resourceflag.php Web79 这题是过滤了php&#xff0c;…

62.在 Vue 3 中使用 OpenLayers 设置不同的坐标点,用不同的颜色区分

前言 在现代 Web 开发中&#xff0c;地图功能已经成为许多应用的重要组成部分。OpenLayers 是一个强大的开源地图库&#xff0c;支持多种地图源和地图操作。结合 Vue 3 的响应式特性&#xff0c;我们可以轻松实现地图的交互功能。本文将详细介绍如何在 Vue 3 中使用 OpenLayer…

Spring 项目 基于 Tomcat容器进行部署

文章目录 一、前置知识二、项目部署1. 将写好的 Spring 项目先打包成 war 包2. 查看项目工件&#xff08;Artifact&#xff09;是否存在3. 配置 Tomcat3.1 添加一个本地 Tomcat 容器3.2 将项目部署到 Tomcat 4. 运行项目 尽管市场上许多新项目都已经转向 Spring Boot&#xff0…

【学习笔记】数据结构(十一)

外部排序 文章目录 外部排序11.1 外存信息的存取11.2 外部排序的方法11.3 多路平衡归并的实现 - 增加k11.4 置换-选择排序 - 减少m11.5 最佳归并树 外部排序 指的是大文件的排序&#xff0c;即待排序的记录存储在外存储器 上&#xff0c;在排序过程中需进行多次的内、外存之间的…