当前位置: 首页 > news >正文

10.Yarn概述

如果说HDFS是存储,则Yarn就是cpu和内存,mapreduce就是程序。

1.基础架构 

复习:

1.Container就是一个容器,其中封装了需要使用的内存与cpu

2.每当提交一个job,就会产生一个appMaster(总指挥),app Master负责其他container里面的MapTask和ReduceTask.

3.NodeManager是一个开关,真正跑任务的是appMaster.

2.Yarn工作机制

步骤解读:

- (0)MR程序提交到客户端所在的节点。

- (1)YarnRunner向ResourceManager申请一个Application。

- (2)RM将该应用程序的资源路径返回给YarnRunner。

- (3)该程序将运行所需资源提交到HDFS上。

- (4)程序资源提交完毕后,申请运行mrAppMaster。

- (5)RM将用户的请求初始化成一个Task。

- (6)其中一个NodeManager领取到Task任务。

- (7)该NodeManager创建容器Container,并产生MRAppmaster。

- (8)Container从HDFS上拷贝资源到本地。

- (9)MRAppmaster向RM 申请运行MapTask资源。

- (10)RM将运行MapTask任务分配给另外两个NodeManager,另两个NodeManager分别领取任务并创建容器。

- (11)MR向两个接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动MapTask,MapTask对数据分区排序。

- (12)MrAppMaster等待所有MapTask运行完毕后,向RM申请容器,运行ReduceTask。

- (13)ReduceTask向MapTask获取相应分区的数据。

- (14)程序运行完毕后,MR会向RM申请注销自己。

3.Hadoop三驾马车的关系

4.Yarn调度器

 hadoop默认调度器有三种:先进先出调度器,容量调度器,公平调度器

1.FIFO

先进先出调度器

   

缺点:任务先到先执行,没有任务优先级一说

2.Capacity Scheduler

容量调度器

3.Fair Scheduler

公平调度器

 关于缺额的解释:

       如上图,一个队列有20%的资源,跑四个任务,每个任务占比5%;这时候新加入一个任务,

理论上是五个人评价分配资源,但是实际上,当job5想要加入的时候,前面4个已经开始跑了,job5并不会里面得到资源。所以

某一时刻上,一个job应该获得的资源和实际获得资源的差据叫缺额

调度器会优先为缺额大的job分配资源:也就是说前面job释放的资源会优先提供给job5.但是每一个job都会有最小资源的保证

只要一直向缺额大的job分配资源,最终整个资源会达到动态平衡的状态

 ps.理论上的资源也不是平均分的,而是根据job的需求和优先级(权重)确定

ps.资源调度器的修改在yarn-default.xml文件中:

 5.Yarn常见配置

在yarn-site.xml里面配置,套用以下格式去改

<property><name>   需要添加的名称    </name><value>  需要添加的值      </value>
</property>

1.ResourceManager性能相关

2.Yarn集群资源配置(NodeManager)

2.1 自动配置(用的少)

ps.虚拟核数就是骗yarn,让他以为job有更多资源 

2.2 手动配置

3.Yarn容器资源配置 

4.Yarn容器内存限制

ps.2.1的意思就是我允许你申请1G内存,但是你最大可以申请到2.1G的虚拟内存

 5.容量调度器相关配置

ps.为什么默认值是0.1而不是1:如果appMaster占用的资源太多,那么mapTask和reduceTask的运行就会有问题 

6. 多队列配置  

多对列的使用案例:

ps.容量调度器只有一条Default队列,是一条单队列的调度器,在实际使用中会出现单个任务阻塞整个队列的情况。因此就需要我们按照业务种类配置多条任务队列。

  在capacity-scheduler.xml进行如下配置:

ps.就是把defualt的内容复制一下,改成hive,然后修改value即可

1.指定多队列,增加hive队列

<property><name>yarn.scheduler.capacity.root.queues</name><value>default,hive</value><description>The queues at the this level (root is the root queue).</description>
</property>

  2.降低default队列资源额定容量为40%,提升hive队列资源额定容量为60%

<property><name>yarn.scheduler.capacity.root.default.capacity</name><value>40</value>
</property><property><name>yarn.scheduler.capacity.root.hive.capacity</name><value>60</value>
</property>

3.配置hive队列的其他属性

<property><name>yarn.scheduler.capacity.root.hive.user-limit-factor</name><value>1</value>
</property>
<!-- 指定hive队列的资源最大容量 -->
<property><name>yarn.scheduler.capacity.root.hive.maximum-capacity</name><value></value>
</property><property><name>yarn.scheduler.capacity.root.hive.state</name><value>RUNNING</value>
</property><property><name>yarn.scheduler.capacity.root.hive.acl_submit_applications</name><value>*</value>
</property><property><name>yarn.scheduler.capacity.root.hive.acl_administer_queue</name><value>*</value>
</property><property><name>yarn.scheduler.capacity.root.hive.acl_application_max_priority</name><value>*</value>
</property><property><name>yarn.scheduler.capacity.root.hive.maximum-application-lifetime</name><value>-1</value>
</property><property><name>yarn.scheduler.capacity.root.hive.default-application-lifetime</name><value>-1</value>
</property>

 配置完成后,将hadoop102的配置同步到其他两台机器:

xsync / opt/ module/hadoop-3.1.3/ etc/hadoop/

最后重启集群即可

结果如下:

4. 最后在driver中声明

5.提交命令

向default提交命令:

hadoop jar \
/opt/module/hadoop-3.1.3\
/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar \
wordcount \
/input \
/xxx3

向hive提交命令:

hadoop jar \
/opt/module/hadoop-3.1.3\
/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar \
wordcount \
-Dmapreduce.job.queuename=hive \
/input \
/xxx4

相关文章:

10.Yarn概述

如果说HDFS是存储&#xff0c;则Yarn就是cpu和内存&#xff0c;mapreduce就是程序。 1.基础架构 复习&#xff1a; 1.Container就是一个容器&#xff0c;其中封装了需要使用的内存与cpu 2.每当提交一个job,就会产生一个appMaster(总指挥),app Master负责其他container里面的…...

MFC实现背景透明,控件不透明的对话框,且点击图片有事件响应

最终成果&#xff1a;背景半透明、但是控件不透明的对话框。 对话框上用图片代表功能&#xff0c;当点击图片时&#xff0c;响应点击事件&#xff0c;弹出相对应的对话框。 对话框固定大小&#xff0c;不可放大缩小&#xff0c;以免影响图片的显示数量。 步骤一&#xff1a;背景…...

案例01-tlias智能学习辅助系统01-增删改查+参数传递

目录 1、需求说明&#xff1a;实现对部门表和员工表的增删改查 2、环境搭建 3、部门管理 3.1 查询部门 3.2 前后端联调 3.3 删除部门 3.4 新增部门 3.5 根据ID查询数据 3.5 修改部门 总结&#xff08;Controller层参数接收&#xff09;&#xff1a; 4、员工管理 4.…...

Spring之Bean的配置与实例

Spring之Bean的配置与实例 一、Bean的基础配置1. Bean基础配置【重点】配置说明代码演示运行结果 2. Bean别名配置配置说明代码演示打印结果 3. Bean作用范围配置【重点】配置说明代码演示打印结果 二、Bean的实例化1. Bean是如何创建的2. 实例化Bean的三种方式2.1 构造方法方式…...

“不保留活动”打开,导致app返回前台崩溃问题解决

问题描述 不保留活动开关打开&#xff0c;把app切入后台&#xff0c;会导致当前展示的Activity被回收&#xff0c;切到前台后重建。 我们有个业务场景是&#xff0c;Activity里面有个ViewPager2&#xff0c;VP里面放Fragment&#xff0c;Fragment的展示需要在Activity中做一些…...

解读vue3源码(3)——watch

Vue3的watch底层源码主要是通过使用Proxy对象来实现的。在Vue3中&#xff0c;每个组件实例都会有一个watcher实例&#xff0c;用于监听组件数据的变化。当组件数据发生变化时&#xff0c;watcher实例会触发回调函数&#xff0c;从而更新组件的视图。 Vue3的watch底层源码主要涉…...

优秀简历的HR视角:怎样打造一份称心如意的简历?

简历的排版应该简洁工整&#xff0c;注重细节。需要注意对齐和标点符号的使用&#xff0c;因为在排版上的细节需要下很大功夫。除此之外&#xff0c;下面重点讲述几点简历内容需要注意的地方。 要点1&#xff1a;不相关的不要写。 尤其是与应聘岗位毫不相关的实习经历&#x…...

系统集成项目管理工程师——考试重点(三)项目管理一般知识

1.项目定义&#xff1a; 为达到特定的目的&#xff0c;使用一定资源&#xff0c;在确定的期间内&#xff0c;为特定发起人提供独特的产品、服务或成果而进行的一系列相互关联的活动的集合。 2.项目目标&#xff1a; 成果性目标&#xff1a;项目产品本身 约束性目标&…...

为什么医疗保健需要MFT来帮助保护EHR文件传输

毫无疑问&#xff0c;医疗保健行业需要EHR技术来处理患者&#xff0c;设施&#xff0c;提供者等之间的敏感患者信息。但是&#xff0c;如果没有安全的MFT解决方案&#xff0c;您将无法安全地传输患者文件&#xff0c;从而使您的运营面临遭受数据泄露&#xff0c;尴尬&#xff0…...

对项目总体把控不足,项目经理应该怎么办?

公司现状&#xff1a;项目人员紧缺&#xff0c;只有两人了解此项目技术细节&#xff0c;其中一个不常驻现场&#xff0c;另一个是执行项目经理李伟。 项目经理王博是公司元老&#xff0c;同时负责多个项目&#xff0c;工作比较忙&#xff0c;不常驻现场&#xff0c;没有参加过…...

【学习笔记】CF603E Pastoral Oddities

先不考虑数据结构部分&#xff0c;尝试猜一下结论。 结论&#xff1a;一个连通块有解当且仅当连通块的度数为偶数。 然后这题要你最大边权最小。最无脑的方法就是直接上 lct \text{lct} lct。真省事啊 我第一眼想到的还是整体二分。这玩意非常好写。 但是为什么也可以用线段…...

如何使用ESP32-CAM构建一个人脸识别系统

有许多人识别系统使用签名、指纹、语音、手部几何、人脸识别等来识别人&#xff0c;但除了人脸识别系统。 人脸识别系统不仅可以用于安全目的来识别公共场所的人员&#xff0c;还可以用于办公室和学校的考勤目的。 在这个项目中&#xff0c;我们将使用 ESP32-CAM 构建一个人脸识…...

JavaWeb分页条件查询参数特殊字符处理

问题背景 在项目开发过程中&#xff0c;基本都会有列表条件查询&#xff0c;例如用户管理会有通过用户姓名模糊查询用户&#xff0c;课程管理会有课程名称模糊查询课程等等。 而查询过程中如果用户在界面上输入一些特殊字符&#xff0c;例如&#xff1a;%_等等&#xff0c;这…...

ubuntu18服务安装

一、JDK安装 将jdk解压缩到该目录 /opt/ sudo tar -zxvf jdk-8u261-linux-x64.tar.gz -C /opt/ #重命名 cd /opt sudo mv jdk-8u261-linux-x64 jdk_8 修改环境变量 sudo vi ~/.bashrc #在文件最后追加以下文本 #进入编辑器后输入以下指令&#xff1a; #1. G //将光标移到最后一…...

这些使用工具大推荐,现在知道不晚

1.Snip Snip是一款截图软件&#xff0c;它突出的优点就是可以制作滚动截图。 例如&#xff1a;对整个网页进行截图&#xff0c;使用Snip即可轻松获取&#xff0c;无需处理水印。 2.Sleep Cycle 快节奏、高压力的生活导致我们越来越晚睡觉&#xff0c;睡眠质量越来越差。 想提…...

【Java|golang】1048. 最长字符串链

给出一个单词数组 words &#xff0c;其中每个单词都由小写英文字母组成。 如果我们可以 不改变其他字符的顺序 &#xff0c;在 wordA 的任何地方添加 恰好一个 字母使其变成 wordB &#xff0c;那么我们认为 wordA 是 wordB 的 前身 。 例如&#xff0c;“abc” 是 “abac”…...

Hive基础和使用详解

文章目录 一、启动hive1. hive启动的前置条件2. 启动方式一: hive命令3. 方式二:使用jdbc连接hive 二、Hive常用交互命令1. hive -help 命令2. hive -e 命令3. hive -f 命令4. 退出hive窗口5. 在hive窗口中执行dfs -ls /&#xff1b; 三、Hive语法1.DDL语句1.1 创建数据库1.2 两…...

c/c++:栈帧,传值,传址,实参传值给形参,传地址指针给形参

c/c&#xff1a;栈帧&#xff0c;传值&#xff0c;传址&#xff0c;实参传值给形参&#xff0c;传地址指针给形参 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;此时学会c的话&#xff0c; 我所知道的周边的会c的同学&…...

玩元宇宙血亏后 蓝色光标梭哈AI也挺悬

蓝色光标2022年年度报告出炉&#xff0c;巨亏21.75 亿元&#xff0c;其中20.38亿亏损因商誉、无形资产及其他资产减值造成&#xff0c;而在实际亏损业务中&#xff0c;元宇宙占比不小。 蓝色光标在元宇宙领域的布局&#xff0c;主要通过三家子公司实施&#xff0c;分别为蓝色宇…...

生物---英文

标题 前言必学场景词汇及用法鸟类昆虫类哺乳类爬行类情境常用单词鸟类虫类哺乳类两栖类与爬行类分类与动物相关的习语前言 加油 必学场景词汇及用法 鸟类 1bird [b[插图]d] n.鸟bird’s-eye-view[ˈb[插图]dzaɪˌvju]adj.鸟瞰图的a bird’s-eye view鸟瞰a flock of bird…...

如何突破Switch游戏限制:Ryujinx开源模拟器的5大实战解决方案

如何突破Switch游戏限制&#xff1a;Ryujinx开源模拟器的5大实战解决方案 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 你是否渴望在PC上畅玩Switch独占游戏&#xff0c;却受限于硬件…...

别再新建空文件了!手把手教你用CodeBlocks创建可调试的C/C++工程(避坑中文路径)

别再新建空文件了&#xff01;手把手教你用CodeBlocks创建可调试的C/C工程&#xff08;避坑中文路径&#xff09; 刚接触编程的新手常常会遇到这样的困惑&#xff1a;明明按照教程写好了代码&#xff0c;设置了断点&#xff0c;按下F7却毫无反应。这种挫败感往往源于一个被多数…...

使用电脑快速测试 CANopen 设备通讯

Anybus CANopen主站仿真工具介绍日常对客户进行技术支持的时候&#xff0c;我们发现工厂自动化领域的不同部门不同职能的人员对于工业通讯设备都面临着一些使用的困难&#xff0c;例如设备研发人员&#xff0c;尤其是嵌入式研发部门&#xff0c;对于工厂自动化使用的工业通讯协…...

如何高效实现STL到STEP格式转换?专业工具stltostp实战指南

如何高效实现STL到STEP格式转换&#xff1f;专业工具stltostp实战指南 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 你是否曾遇到这样的困境&#xff1a;精心设计的3D模型在STL格式下无法导入…...

PPTist免费在线演示文稿制作完全指南:从零到专业演示的终极教程

PPTist免费在线演示文稿制作完全指南&#xff1a;从零到专业演示的终极教程 【免费下载链接】PPTist PowerPoint-ist&#xff08;/pauəpɔintist/&#xff09;, An online presentation application that replicates most of the commonly used features of MS PowerPoint, al…...

5个关键步骤:让你的Windows视频播放体验达到专业级水准

5个关键步骤&#xff1a;让你的Windows视频播放体验达到专业级水准 【免费下载链接】VideoRenderer Внешний видео-рендерер 项目地址: https://gitcode.com/gh_mirrors/vi/VideoRenderer 你是否曾经在Windows上观看高质量视频时&#xff0c;感觉画…...

Hitboxer SOCD Cleaner:键盘输入仲裁系统的底层实现与技术架构分析

Hitboxer SOCD Cleaner&#xff1a;键盘输入仲裁系统的底层实现与技术架构分析 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏领域&#xff0c;键盘输入精度直接影响玩家操作表现。传统键盘在处理同…...

mpv.net 高效配置实战:从媒体播放到专业调优的进阶指南

mpv.net 高效配置实战&#xff1a;从媒体播放到专业调优的进阶指南 【免费下载链接】mpv.net &#x1f39e; mpv.net is a media player for Windows with a modern GUI. 项目地址: https://gitcode.com/gh_mirrors/mp/mpv.net 作为一款基于mpv核心的现代化Windows媒体播…...

AI系统的四层缓存架构

别再被“提示词缓存”“语义缓存”绕晕了&#xff0c;它们根本不是一回事 先上关系图&#xff1a;AI系统里的四层缓存 很多人把缓存当一个东西聊&#xff0c;其实它们是四个不同的层&#xff0c;各管各的&#xff0c;又互相喂数据。 第一层 长期知识源 项目记忆缓存&#x…...

ROS2 Humble下colcon编译实战:从创建workspace到运行自定义节点

ROS2 Humble下colcon编译实战&#xff1a;从创建workspace到运行自定义节点 在机器人开发领域&#xff0c;ROS2已经成为事实上的标准框架&#xff0c;而colcon作为其官方推荐的构建工具&#xff0c;掌握它的使用技巧能显著提升开发效率。本文将带您完成一个完整的ROS2项目构建流…...