Hadoop(YARN)

文章目录

    • YARN基础架构
    • YARN工作原理
    • YARN调度器和调度算法
      • 先进先出调度器
      • 容量调度器
      • 公平调度器
    • YARN常用命令

YARN基础架构

YARN是Hadoop集群的资源管理和调度系统,它负责为各种分布式计算任务分配和管理资源,包含以下组件:ResourceManager,NodeManager,ApplicationMaster, Container。

  • ResourceManager(RM):负责整个集群的资源管理和分配,接收来自NodeManager的资源使用报告,并根据策略分配资源给各个应用程序。
  • NodeManager(NM):运行在单个节点上,负责管理单个节点的资源,如CPU和内存,并向ResourceManager汇报资源使用情况。
  • ApplicationMaster(AM):负责为每个应用程序申请资源和任务调度,向ResourceManager申请资源,再与NodeManager交互以启动和监控任务。
  • Container :YARN中的资源抽象,封装了某个节点上的资源,如内存和CPU等,Container是执行任务的基本单位。
    在这里插入图片描述

YARN工作原理

在这里插入图片描述
一开始提交 MR 程序到客户端所在节点,然后YarnRunner 向 ResourceManager 申请一个 Application,ResourceManager 将运行该应用程序的资源提交路径返回给 YarnRunner,应用程序根据路径将运行所需资源(运行jar包和切片参数等信息)提交到 HDFS 上,资源提交完毕后,向ResourceManager 申请运行 mrAppMaster,ResourceManager 将用户的请求初始化为一个Task放入FIFO队列中,NodeManager 再从FIFO队列领取Task 后创建Container容器,Container 从 HDFS 上下载运行资源到本地,然后运行 MRAppmaster程序,MRAppmaster 向 ResourceManager 申请运行 MapTask ,ResourceManager 将请求封装为task放入队列中,其他 NodeManager从队列领取任务并创建容器,MRAppmaster 向领取到任务的 NodeManager 发送程序启动脚本,NodeManager 执行 MapTask,执行完后数据存储在分区,MrAppMaster 等所有 MapTask 执行完,向 ResourceManager 申请容器运行 ReduceTask,ReduceTask 向 MapTask 获取执行结果并汇总,程序运行完毕后,MrAppMaster 会向 ResourceManager 申请注销自己。

YARN调度器和调度算法

Hadoop作业调度器主要有三种,分别是先进先出调度器(FIFO)、容量调度器(Capacity Scheduler)和公平调度器(Fair Scheduler), 在Hadoop3.1.3中, 默认的资源调度器是容量调度器,CDH 框架默认调度器是公平调度器。

先进先出调度器

FIFO 调度器(First In First Out):一个队列根据作业提交的先后顺序,先来先服务。
在这里插入图片描述
优点:易于理解,实现简单。
缺点:只支持单个队列,无法满足多用户或多应用程序同时运行。

容量调度器

容量调度器是Yahoo开发的多用户调度器,它支持多队列,每个队列可以配置一定的资源量。
在这里插入图片描述
特点:

  • 多队列:每个队列可配置一定的资源量,采用FIFO调度策略。

  • 容量保证:可以为每个队列设置资源最低保证和使用上限。

  • 灵活性:当队列资源有剩余时,可以先借给其他队列使用,等该队列有新的应用程序提交时,其他队列需要归还资源给该队列。

  • 多租户:支持多用户共享集群资源,为了防止单个用户作业独占队列资源,可以限定用户作业所占的资源量。

容量调度器的资源分配策略
在这里插入图片描述

  • 队列资源分配方式

    从根节点出发,使用dfs算法,系统优先选择资源占用率最低的队列来分配资源。

  • 作业资源分配方式

    默认情况下,根据作业提交的优先级以及提交的时间先后顺序分配。

  • 容器资源分配方式

    首先按照容器的优先级分配,若优先级相同,则根据数据本地性原则进行分配:首选任务和数据位于同一节点的情况,其次是任务和数据在同一机架但不同节点的情况,最后是任务和数据既不在同一节点也不在同一机架的情况。

公平调度器

公平调度器是一个多用户调度器,具有容量调度器以上的所有特点。公平调度器设计目标是:在时间维度上,所有的作业能够得到公平的资源分配,一个作业应获的资源和实际获取资源的差距叫缺额,公平调度器会优先为缺额大的作业分配更多的资源,从而缩小各个作业之间的资源差距。

在这里插入图片描述
与容量调度器的区别

  1. 调度策略不同

容量调度器:优先选择资源利用率低的队列分配资源。
公平调度器:优先选择资源缺额比例大的队列分配资源。

  1. 队列资源分配方式不同

容量调度器:FIFO、 DRF

公平调度器:FIFO、FAIR、DRF

公平调度器的资源分配策略

1)FIFO策略

公平调度器若采用此策略就相当于容量调度器。

2)Fair策略(默认的实现方式)

Fair基于公平算法分配资源,若一个队列中有两个应用程序同时运行,则每个应用程序可得到1/2的资源,如果有三个应用程序同时运行,则每个应用程序可得到1/3的资源。

资源的分配流程和容量调度器一致,按照队列,作业,容器的顺序分配,每一步都是按照公平策略分配资源。

在这里插入图片描述

YARN常用命令

启动YARN

./start-yarn.sh

在这里插入图片描述

再启动历史服务器

 mapred --daemon start historyserver

在这里插入图片描述

访问localhost:19888/jobhistory/app查看YARN的WEB UI页面
在这里插入图片描述
1)查看所有任务

yarn application -list

2)Kill 掉任务

yarn application -kill applicationId

3)查看Container日志

yarn logs -applicationId -containerId

4)查看Application日志

yarn logs -applicationId

5)查看所有容器

yarn container -list

6)查看队列

yarn queue -status default

7)查看节点

yarn node -list -all

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

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

相关文章

【GoWeb示例】通过示例学习 Go 的 Web 编程

文章目录 你好世界HTTP 服务器路由(使用 gorilla/mux)连接到 MySQL 数据库MySQL 数据库简单操作模板静态资源和文件操作表单处理中间件(基础)中间件(高级)会话JSONWebsockets密码哈希 你好世界 Go语言创建…

【C语言】Union

一.Union的用法 1.什么是Union? union 共用体名{ 成员列表 }; union,“联合体、共用体”,在某种程度上类似结构体struct的一种数据结构,共用体(union)和结构体(struct)同样可以包含很多种数据类型和变量。 2.为什么使用union&#xff1…

2024最新版JavaScript逆向爬虫教程-------基础篇之Chrome开发者工具学习

目录 一、打开Chrome DevTools的三种方式二、Elements元素面板三、Console控制台面板四、Sources面板五、Network面板六、Application面板七、逆向调试技巧7.1 善用搜索7.2 查看请求调用堆栈7.3 XHR 请求断点7.4 Console 插桩7.5 堆内存函数调用7.6 复制Console面板输出 工欲善…

Debezium日常分享系列之:异步 Debezium 嵌入式引擎

Debezium日常分享系列之:异步 Debezium 嵌入式引擎 动机目标非目标保留Kafka Connect模型计划的更改线程池并行运行源任务存储偏移量并发处理CDC事件禁用CDC事件的完全排序自定义记录处理器并行处理记录的选项存储偏移量引擎状态和生命周期防止资源泄漏异常处理退出…

大数据学习12之HBase

1.基本概念 1.1简介 Apache HBase(Hadoop DataBase)是一个开源的、高可靠性、高性能、面向列(这里指列族,非列式存储)、可伸缩、实时读写的分布式数据库,其设计思想来源于 Google 的 BigTable 论文。利用 …

POP3、SMTP、FTP、HTTP、BGP、DNS、DHCP、RIP、Ping、Traceroute

POP3 全称:Post Office Protocol 3,即邮局协议第3版。 作用:主要用于电子邮件系统中从邮件服务器检索电子邮件至本地客户端应用程序。它是互联网中最传统的邮件接收协议之一。 工作方式:允许用户通过客户端软件(如Ou…

vue之组件网站(后续补)

vue移动端 Vant 4 NutUI cube-ui vue电脑端 Element Plus OpenTiny Arco Design Ant Design Vue Vuetify Naive UI react移动端 Ant Design NutUI react vant

(Go基础)Go的运行流程步骤与包的概念

1. 快速入门 所有的go开发,都必须存在并包含在某一个包内 .go 是go语言程序的后缀名 1.1 编译 通过使用 go build 命令对该go文件进行编译,生成.exe文件 1.2 运行 运行刚刚生成出来的test.exe文件既可,不过并不不是双击,而是在…

Verilog基础知识-逻辑值

在 Verilog 中,逻辑值用于表示数字电路中的状态。 逻辑值 0 :0 表示低电平;1: 1 表示高电平;高阻态(High-Z 或 Z):表示一个未驱动(undriven)或浮空&#xf…

一七六、CSS 介绍及示例

CSS 介绍及示例 CSS(Cascading Style Sheets)是层叠样式表的缩写,主要用于控制网页元素的样式,如颜色、字体、布局等。以下是常见的 CSS 属性及其示例。 Box 模型相关属性 1. width / height 用于设置元素的宽度和高度。 div …

CSS教程(八)- 盒子模型

1、介绍 核心内容 盒子模型、浮动和定位,帮助我们实现页面布局 本质:页面布局过程 准备好相关的页面元素,网页元素基本都是盒子 Box 利用 CSS 设置盒子的样式,摆放到相应的位置 向盒子中填充相应内容 网页布局的核心本质&…

数据结构——二叉树和BST

树与二叉树 基本概念 树是一种非线性结构,其严格的数学定义是:如果一组数据中除了第一个节点(第一个节点称为根节点,没有直接前驱节点)之外,其余任意节点有且仅有一个直接前驱,有零个或多个直接…

mysql数据库(四)单表查询

单表查询 文章目录 单表查询一、单表查询1.1 简单查询1.2where1.3group by1.4having1.5order by1.6limit 一、单表查询 记录的查询语法如下: SELECT DISTINCT(去重) 字段1,字段2… FROM 表名 WHERE 筛选条件 GROUP BY 分组 HAVING 分组筛选 ORDER BY 排序 LIMIT 限…

常用机器人算法原理介绍

一、引言 随着科技的不断发展,机器人技术在各个领域得到了广泛应用。机器人算法是机器人实现各种功能的核心,它决定了机器人的行为和性能。本文将介绍几种常用的机器人算法原理,包括路径规划算法、定位算法和运动控制算法。 二、路径规划算法…

Vagrant 没了 VirtualBox 的话可以配 Qemu

开源虚拟机软件 VirtualBox 从当初不可一世的 Sun 易手到 Oracle 之间,变得不那么被许多公司信任了。之前一直是用 Vagrant 搭配 VirtualBox 在 Mac 下使用 Linux 虚拟机,因为不需要用到 Linux 桌面,用 Vagrant 操作虚拟机非常方便。但现在不…

C语言 | Leetcode C语言题解之第542题01矩阵

题目: 题解: /*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/ type…

一文了解珈和科技在农业遥感领域的服务内容和能力

2020年,农业农村部、中央网信办联合印发了《数字农业农村发展规划(2019-2025年)》,对数字农业农村建设作出了具体部署。其中,农业遥感作为推进数字农业农村的重要力量贯穿《规划》始终。 今年10月,农业农村…

【Golang】Channel的ring buffer实现

文章目录 前言一、介绍三、环形缓冲区的实现原理三、使用方式四、总结 前言 在并发编程中,channel 是 Golang 提供的一种用于 goroutine 之间通信的机制。channel 的底层实现是一个环形缓冲区,这种设计使得 channel 在处理大量数据传输时能够保持高效。…

隧道论文阅读2-采用无人融合扫描数据的基于深度学习的垂直型隧道三维数字损伤图

目前存在的问题: 需要开发新的无人测量系统测量垂直隧道图像数据量巨大,基于深度学习完成损伤评估跟踪获取图像位置的困难,对大型基础设施感兴趣区域(roi)的2d和3d地图建立进行了研究,对整个目标结构的损伤定位仍然具有挑战性。为…

深入提升Python编程能力的全方位指南

Python作为一种强大且灵活的编程语言,广泛应用于数据科学、机器学习、网络开发、自动化等领域。提升Python编程技术需要结合多方面的知识和技能。本文将详细介绍通过掌握核心技术、项目实践和代码示例来系统提升Python编程技能的方法。 一、掌握基础和高级Python特…