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面板输出 工欲善…

大数据学习12之HBase

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

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

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

CSS教程(八)- 盒子模型

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

数据结构——二叉树和BST

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

常用机器人算法原理介绍

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

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月,农业农村…

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

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

HCIP-HarmonyOS Application Developer V1.0 笔记(五)

弹窗功能 prompt模块来调用系统弹窗API进行弹窗制作。 当前支持3种弹窗API,分别为: 文本弹窗,prompt.showToast;对话框,prompt.showDialog;操作菜单,prompt.showActionMenu。 要使用弹窗功能&…

《深入浅出Apache Spark》系列③:Spark SQL解析层优化策略与案例解析

导读:本系列是Spark系列分享的第三期。第一期分享了Spark Core的一些基本原理和一些基本概念,包括一些核心组件。Spark的所有组件都围绕Spark Core来运转,其中最活跃的一个上层组件是Spark SQL。第二期分享则专门介绍了Spark SQL的基本架构和…

Linux应用——线程池

1. 线程池要求 我们创建线程池的目的本质上是用空间换取时间,而我们选择于 C 的类内包装原生线程库的形式来创建,其具体实行逻辑如图 可以看到,整个线程池其实就是一个大型的 CP 模型,接下来我们来完成它 2. 整体模板 #pragma …

算法每日双题精讲——滑动窗口(长度最小的子数组,无重复字符的最长子串)

🌟快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 🌟 别再犹豫了!快来订阅我们的算法每日双题精讲专栏,一起踏上算法学习的精彩之旅吧!💪…

HiveSQL 中判断字段是否包含某个值的方法

HiveSQL 中判断字段是否包含某个值的方法 在 HiveSQL 中,有时我们需要判断一个字段是否包含某个特定的值。下面将介绍几种常用的方法来实现这个功能。 一、创建示例表并插入数据 首先,我们创建一个名为employee的表,并插入一些示例数据&am…

vue2 - el-table表格设置动态修改表头

效果 代码 <template><el-card><!-- 搜索栏 --><Search :query

MySQL 8.0的Public Key Retrival问题解决

一、导致“Public Key Retrieval is not allowed”原因 该错误是在 JDBC 与 MySQL 建立 Connection 对象时出现的&#xff1b;需要明确的是出现该问题的时候&#xff0c;MySQL 配置的密码认证插件为如下两种&#xff1a; sha256_passwordcaching_sha2_password 使用“mysql_…

sed超实用的文本处理工具

sed命令参数表 sed参数说明a在指定行的后面增加新航c替换指定行d删除行-e多次编辑&#xff0c;多次编辑后这样写回文件。sed -i -e /^[[:space:]]*#/d -e /^$/d nginx.confp打印行-r激活拓展正则-n取消默认输出-i静默编辑&#xff0c;屏幕上不显示编辑后的内容&#xff0c;放在…

GPU 环境搭建指南:如何在裸机、Docker、K8s 等环境中使用 GPU

本文主要分享在不同环境&#xff0c;例如裸机、Docker 和 Kubernetes 等环境中如何使用 GPU。 跳转阅读原文&#xff1a;GPU 环境搭建指南&#xff1a;如何在裸机、Docker、K8s 等环境中使用 GPU 1. 概述 仅以比较常见的 NVIDIA GPU 举例&#xff0c;系统为 Linux&#xff0c;…