【大数据】了解 YARN 架构的基础知识

了解 YARN 架构的基础知识

  • 1.为什么是 YARN
  • 2.YARN 简介
  • 3.YARN 的组成部分
    • 3.1 Resource Manager 资源管理器
      • 3.1.1 Scheduler 调度程序
      • 3.1.2 Application Manager 应用程序管理器
    • 3.2 Node Manager 节点管理器
    • 3.3 Application Master 应用程序主控
    • 3.4 Container 容器
  • 4.在 YARN 中提交应用程序
  • 5.Hadoop YARN 中的应用程序工作流程

Hadoop YARN(Yet Another Resource Negotiator)将 Hadoop 的存储单元即 HDFS(Hadoop 分布式文件系统)与各种处理工具编织在一起。

1.为什么是 YARN

在 Hadoop 1.0 版本,也称为 MRV1MapReduce Version 1),MapReduce 执行处理和资源管理功能。它由一个 作业跟踪器Job Tracker)组成,它是唯一的主机。作业跟踪器分配资源、执行调度并监控处理作业。它在许多称为 任务跟踪器Task Trackers)的从属进程上分配映射和归约任务。任务跟踪器定期向作业跟踪器报告其进度。

在这里插入图片描述
由于单个作业跟踪器,这种设计导致了可扩展性瓶颈。 IBM 在其文章中提到,根据 Yahoo 的说法,当集群包含 5000 5000 5000 个节点和同时运行 40000 40000 40000 个任务时,这种设计就达到了实际极限。除了这一限制之外,MRV1 中计算资源的利用效率较低。此外,Hadoop 框架仅限于 MapReduce 处理范例。

为了克服所有这些问题,雅虎和 Hortonworks 于 2012 年在 Hadoop 2.0 版本中引入了 YARN。 YARN 背后的基本思想是通过 接管资源管理和作业调度 的职责来减轻 MapReduce 的负担。 YARN 开始赋予 Hadoop 在 Hadoop 框架内运行非 MapReduce 作业的能力

随着 YARN 的推出,Hadoop 生态系统发生了彻底的变革。它变得更加灵活、高效和可扩展。当雅虎在 2013 年第一季度启用 YARN 时,它帮助该公司将 Hadoop 集群的规模从 40000 40000 40000 个节点缩小到 32000 32000 32000 个节点。但就业岗位数量却翻了一番,达到每月 2600 万个。

2.YARN 简介

现在我已经让您了解了 YARN 的必要性,接下来让我向您介绍 Hadoop 2.0 的核心组件 YARN。 YARN 允许图形处理、交互式处理、流处理以及批处理等不同的数据处理方法来运行和处理存储在 HDFS 中的数据。因此,YARN 将 Hadoop 开放给 MapReduce 之外的其他类型的分布式应用程序

在这里插入图片描述
YARN 使用户能够根据需要使用各种工具执行操作,例如用于实时处理的 Spark、用于 SQL 的 Hive、用于 NoSQL 的 HBase 等。

除了 资源管理 之外,YARN 还执行 作业调度。 YARN 通过分配资源和调度任务来执行所有处理活动。 Apache Hadoop YARN 架构由以下主要组件组成:

  • 资源管理器Resource Manager):在主守护进程上运行并管理集群中的资源分配。
  • 节点管理器Node Manager):它们在从属守护进程上运行,负责在每个数据节点上执行任务。
  • 应用程序主控Application Master):管理各个应用程序的用户作业生命周期和资源需求。它与节点管理器一起工作并监视任务的执行。
  • 容器Container):单个节点上的 RAM、CPU、网络、HDD 等资源的封装。

3.YARN 的组成部分

您可以将 YARN 视为 Hadoop 生态系统的大脑。下图代表了 YARN 架构。
在这里插入图片描述

3.1 Resource Manager 资源管理器

  • 它是资源配置的最终权威。
  • 收到处理请求后,它将部分请求相应地传递给相应的节点管理器,在节点管理器中进行实际处理。
  • 它是集群资源的仲裁者,决定竞争应用程序的可用资源分配。
  • 优化集群利用率,例如根据容量保证、公平性和 SLA 等各种限制保持所有资源始终处于使用状态。

它有两个主要组件:

3.1.1 Scheduler 调度程序

  • 调度程序负责将资源分配给受容量、队列等约束的各种正在运行的应用程序。
  • 它在 ResourceManager 中被称为纯调度程序,这意味着它不会对应用程序的状态执行任何监视或跟踪。
  • 如果出现应用程序故障或硬件故障,调度程序不保证重新启动失败的任务。
  • 根据应用程序的资源需求进行调度。
  • 它有一个可插入的策略插件,负责在各个​​应用程序之间划分集群资源。有两个这样的插件:Capacity SchedulerFair Scheduler,目前在 ResourceManager 中用作调度程序。

3.1.2 Application Manager 应用程序管理器

  • 它负责接受作业提交。
  • 协商资源管理器中的第一个容器来执行应用程序特定的应用程序主程序。
  • 管理集群中运行的 Application Master,并提供在失败时重新启动 Application Master 容器的服务。

3.2 Node Manager 节点管理器

  • 它负责 Hadoop 集群中的各个节点,并管理给定节点上的用户作业和工作流程。
  • 它向资源管理器注册并发送包含节点健康状态的心跳。
  • 它的主要目标是管理资源管理器分配给它的应用程序容器。
  • 它与资源管理器保持同步。
  • 应用程序主机通过向节点管理器发送容器启动上下文(CLC)来请求分配的容器,其中包含应用程序运行所需的所有内容。节点管理器创建请求的容器进程并启动它。
  • 监控各个容器的资源使用情况(内存、CPU)。
  • 执行日志管理。
  • 它还按照资源管理器的指示杀死容器。

3.3 Application Master 应用程序主控

  • 应用程序是提交给框架的单个作业。每个应用程序都有一个与之关联的唯一应用程序主控器,它是框架的一个特定实体。
  • 它是协调集群中应用程序的执行并管理故障的进程。
  • 它的任务是从资源管理器协商资源并与节点管理器一起执行和监视组件任务。
  • 它负责与 ResourceManager 协商适当的资源容器,跟踪它们的状态并监控进度。
  • 一旦启动,它会定期向资源管理器发送心跳,以确认其运行状况并更新其资源需求的记录。

3.4 Container 容器

  • 它是单个节点上 RAM、CPU 内核和磁盘等物理资源的集合。
  • YARN 容器由容器启动上下文(即容器生命周期,CLC)管理。该记录包含环境变量的映射、存储在远程可访问存储中的依赖项、安全令牌、节点管理器服务的有效负载以及创建进程所需的命令。
  • 它授予应用程序在特定主机上使用特定数量的资源(内存、CPU 等)的权利。

4.在 YARN 中提交应用程序

在这里插入图片描述

  • 1 提交作业
  • 2 获取应用程序 ID
  • 3 提交应用程序上下文
  • 4.a 启动容器
  • 4.b 启动应用程序主程序
  • 5 分配资源
  • 6.a 容器
  • 6.b 启动
  • 7 执行

5.Hadoop YARN 中的应用程序工作流程

  • 1.客户端(Client)提交申请
  • 2.资源管理器(Resource Manager)分配一个容器来启动应用程序管理器(Application Manager
  • 3.应用程序管理器(Application Manager)向资源管理器(Resource Manager)注册
  • 4.应用程序管理器(Application Manager)向资源管理器(Resource Manager)询问容器
  • 5.应用程序管理器(Application Manager)通知节点管理器(Node Manager)启动容器
  • 6.应用程序代码在容器中执行
  • 7.客户端联系资源管理器(Resource Manager)/ 应用程序管理器(Application Manager),以监控应用程序的状态
  • 8.应用程序管理器(Application Manager)向资源管理器(Resource Manager)取消注册

在这里插入图片描述

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

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

相关文章

数据库课程设计-图书管理系统数据库设计

目录 一、实验目的 二、实验内容 三、实验要求 四、实验设计 4.1需求分析 4.1.1系统目标 4.1.2功能需求 4.1.3性能需求 4.14界面需求 4.2概念模型设计 4.2.1 实体及联系 4.2.2 E-R图 4.3 逻辑设计 4.3.1 E-R模型向关系模型的转换 4.3.2 数据库逻辑结构 4.3.3数据库模型函数依赖…

【leetcode】回溯总结

本文内容来自于代码随想录https://www.programmercarl.com/ 思想 一棵树中的纵向遍历结束回到上一层的过程,比如: 这个过程通常回伴随恢复现场的过程。 模板 void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集…

【实战】K8S部署Redis集群代理Predixy

文章目录 前言技术积累为什么要在redis集群前面加个predixy代理?这样做的好处有哪些?常用代理配置网络存储 实战构建predixy镜像并部署下载predixy源码编译构建镜像创建K8S配置文件predixy-configmap并执行网络储存PV与PVC部署predixy-deployment 测试代…

Go 日期时间包装器:15条更便捷的时间处理

★ 关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力! ” 在Go编程中,处理日期和时间是一项常见任务,涉及到精确性和灵活性。尽管Go的标准库提供了时间包&am…

为什么国产操作系统是基于linux研发的呢?

为什么国产操作系统是基于linux研发的呢? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「linux的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!&am…

Mysql详细安装步骤

Linux 安装 MySQL【超详细版】 ​编辑 我叫BuGu    2023-05-11 16:48:10 发布 一、安装 MySQL 的准备工作 1. 查看系统版本 cat /etc/redhat-release2. 查看系统是否已经安装过 MySQL 查看是否安装了 MySQL rpm -qa | grep mysql查看是否有安装 mariadb,该软件与 MySQ…

查看windows系统服务的日志

要查看Windows服务运行时产生的日志记录,请按照以下步骤操作: 1. **通过事件查看器查看服务日志:** - 按下 Win R 组合键打开“运行”对话框。 - 在“运行”对话框中输入 eventvwr.msc,然后按回车键或点击“确定”按钮以打…

力扣70. 爬楼梯(动态规划 Java,C++解法)

Problem: 70. 爬楼梯 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 由于本题目中第i层台阶只能由于第i- 1层台阶和第i-2层台阶走来,所以可以联想到动态规划,具体如下: 1.定义多阶段决策模型:对于每一上台阶看作一种状…

漏洞补丁修复之openssl版本从1.1.1q升级到1.1.1t以及python版本默认2.7.5升级到2.7.18新版本和Nginx版本升级到1.24.0

​ 一、Openssl升级 1、查看Openssl安装的版本 openssl version 2、查看Openssl路径 which openssl 3、上传openssl安装包到服务器:openssl-1.1.1t.tar.gz,并且解压,安装: mv /usr/local/openssl /usr/local/backup_openssl_1.1.1q_20240120 mkdir /usr/local/openssl tar…

【 Qt 快速上手】-①- Qt 背景介绍与发展前景

文章目录 1.1 什么是 Qt1.2 Qt 的发展史1.3 Qt 支持的平台1.4 Qt 版本1.5 Qt 的优点1.6 Qt的应用场景1.7 Qt的成功案例1.8 Qt的发展前景及就业分析行业发展方向就业方面的发展前景 1.1 什么是 Qt Qt 是一个跨平台的 C 图形用户界面应用程序框架。它为应用程序开发者提供了建立…

Web01--HTML基础

1、HTML 1.1 HTML概念 引用百度百科 HTML全称超文本标记语言(Hyper Text Markup Language),它不是一种编程语言,而是一种标记语言,通常用来制作网页。 超文本指的是页面上除了可以显示普通的文字以外,还可以显示图片、链接、甚…

一行代码就修复了Dubbo的Bug

1.什么是 System.identityHashCode? 2.什么是 hashCode? 3.为什么一行代码就修复了这个 BUG? 前情回顾 先通过一个前情回顾,引出本文所要分享的内容。 Dubbo 一致性哈希负载均衡算法的设计初衷应该是如果没有服务上下线的操作…

【C++入门到精通】智能指针 shared_ptr 简介及C++模拟实现 [ C++入门 ]

阅读导航 引言一、简介二、成员函数三、使用示例四、C模拟实现五、std::shared_ptr的线程安全问题六、总结温馨提示 引言 在 C 动态内存管理中,除了 auto_ptr 和 unique_ptr 之外,还有一种智能指针 shared_ptr,它可以让多个指针共享同一个动…

MT36291替代MT3608 FP6291 低成本 用于移动电源,蓝牙音箱,便携式设备等

航天民芯原装MT36291 SOT23-6 PIN对PIN替代FP6291LR-G1 MT3608等,低成本,用于移动电源,蓝牙音箱,便携式设备等领域。 TEL:18028786817 专注于电源管理IC 一级代理 技术支持 欢迎试样! 描述 MT36291是一个恒定频…

初始linux:多用户信息共享

提示:以下指令均在Xshell 7 中进行 共享文件的创建: 在创造共享文件之前,我们首先要知道,目录的权限。 目录的权限 分别是 r w x ,r表示对可以在目录中查看目录的文件信息,w表示可以在目录中进行文件的…

MyBatis框架基础到进阶

1、为什么要学习MyBatis 如果没有MyBatis框架,我们依靠JDBC和连接池已经能够很好的和数据库进行交互了,而学习MyBatis框架最核心的原因是为了减少SQL语句对代码的侵入性。 因为在过往不管是使用连接池还是JDBC Templete,所有的SQL语句都写在代…

大创项目推荐 深度学习花卉识别 - python 机器视觉 opencv

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &a…

【网络安全】常见的网络威胁有哪些?

随着互联网的快速发展,网络安全问题日益凸显。常见的网络威胁包括病毒、木马、恶意软件等。这些威胁不仅会影响计算机的安全运行,还会窃取用户的个人信息,造成巨大的损失。因此,我们需要采取一些措施来保护自己的网络安全。 常见的…

Elasticsearch 入门向使用

文章目录 ElasticSearch简介倒排索引安装(单节点)分词器kibana与Mysql概念上的对比索引库CRUD文档CRUDDSL查询相关性算分Function Score Query自定义算分Boolean Query 搜索结果处理排序分页高亮 数据聚合 aggregations自动补全数据同步集群 ElasticSearch 简介 Elasticsearc…

【2023我的编程之旅】七次不同的计算机二级考试经历分享

目录 我报考过的科目 第一次报考MS Office 第二次报考Web语言,C语言,C语言 第三次报考C语言,C语言,Java语言 分享一些备考二级的方法 一些需要注意的细节 结语 2023年的CSDN征文活动已经进入了尾声,在这最后我…