hadoop 前端yarn 8088端口查看任务执行情况

yarn资源查看
图中资源相关参数含义及简单分析思路:

  1. 基础资源抢占参数
  • Total Resource Preempted: <memory:62112, vCores:6>
    含义:应用总共被抢占的资源量, memory:62112 表示累计被收回的内存(单位通常是MB ,结合Hadoop生态常见配置推测 ), vCores:6 是被收回的虚拟CPU核心数。
    分析:若频繁、大量出现资源抢占,可能集群资源紧张,或该应用资源申请/使用策略不合理,挤占其他任务资源。
  • Total Number of Non - AM Containers Preempted: 6
    含义:非应用管理器(AM,Application Master ,负责应用资源协调等)容器被抢占的总数,这里是6个。容器是YARN等资源调度框架中资源分配的基本单位。
    Total Number of AM Containers Preempted: 0
    含义:应用管理器容器未被抢占,说明负责应用整体管控的核心进程资源相对稳定。
    分析:非AM容器被抢占多,可能是业务计算容器资源超量或集群整体资源不足,优先保障了AM稳定。
  • Resource Preempted from Current Attempt: <memory:62112, vCores:6>
    含义:当前应用尝试(一次提交执行可理解为一次Attempt )中被抢占的资源量,和总抢占资源一致,说明本次执行就发生了这些资源回收。
    Number of Non - AM Containers Preempted from Current Attempt: 6
    含义:当前尝试里被抢占的非AM容器数量,与总数量一致,即本次执行这6个业务容器资源被收走。
    分析:本次执行资源抢占集中,需看是否应用资源申请过高,或集群在该时段有更高优先级任务。
  1. 资源分配聚合参数
  • Aggregate Resource Allocation: 2612397662 MB - seconds, 27483 core - seconds
    含义:
  • MB - seconds :内存资源使用的“时间积分”,可理解为 内存量(MB)× 使用时长(秒) 总和,反映内存资源的累计消耗规模 ;
  • core - seconds :CPU核心使用的“时间积分”,即 CPU核心数 × 使用时长(秒) 总和,体现CPU资源的累计消耗规模。
    分析:数值大说明应用整体资源消耗多。对比同类型、同逻辑任务,若该数值异常高,可能任务数据量突增、计算逻辑低效(如冗余计算导致CPU/内存长时间占用)。
  • Aggregate Preempted Resource Allocation: 24922718 MB - seconds, 244 core - seconds
    含义:因抢占回收的资源对应的“资源 - 时间”积分,即被收回资源若正常执行下去会产生的资源消耗。
    分析:结合前面抢占的容器数、资源量,可算抢占资源占总分配资源的比例(如这里内存抢占占比约 24922718/2612397662≈0.95% ,CPU同理 ),占比高说明资源浪费/不合理使用严重,占比低可能是集群临时资源调剂。

整体分析思路

  1. 资源抢占影响:若资源抢占后应用仍 SUCCEEDED (成功),说明虽被回收资源,但剩余资源或重试机制(若有)保障了执行;若频繁因抢占失败( FAILED ),得调整资源申请、优化任务逻辑,或和集群管理员沟通资源配额。
  2. 集群层面:多任务出现类似高抢占,需检查集群资源规划(如队列资源分配、节点容量),是否有资源倾斜(某队列/用户占用过多 );若仅个别任务,聚焦任务自身资源配置、数据量、计算逻辑优化。
  3. 结合业务:若这是周期性ETL(如每天跑的零售客户标签计算 exp_ctp_retail_cust_dms_labe_df ),对比历史执行的资源参数,看是否数据量增长导致资源需求变化,或调度时段和其他大任务冲突挤资源 。

简单说,这些参数反映应用在集群中资源“用了多少、被收走多少、怎么被收”,用于排查资源冲突、优化任务资源配置和保障集群稳定运行 。

资源抢占(Resource Preemption)主要会从任务执行、集群稳定性、资源利用率等维度产生影响,具体如下:

  1. 对任务执行的直接影响
  • 执行时间延长:
    若容器被抢占,任务可能需要重新申请资源、启动容器,增加额外的调度和初始化开销(如YARN重新分配容器、TEZ/MapReduce任务重启),导致整体耗时变长。
    例:前一张图中任务因资源抢占耗时25分钟,而无抢占的任务耗时仅16分钟左右。
  • 任务失败风险:
    若抢占后剩余资源不足(如内存/CPU被过度回收),任务可能因“资源不足”(如OOM、容器被强制Kill)失败;即使重试,频繁抢占也会耗尽重试次数(若配置有限)。
  1. 对集群稳定性的影响
  • 集群抖动(Thrashing):
    大量任务同时被抢占、重启会导致集群资源“潮汐式”波动,引发YARN调度队列过载、节点负载突增,甚至影响其他无关任务的正常执行。
  • 低优先级任务“饿死”:
    若高优先级任务持续抢占资源,低优先级任务可能长期无法获得足够容器,导致业务延迟(如非核心ETL任务被核心报表任务抢占)。
  1. 对资源利用率的双向影响
  • 正面:倒逼资源合理分配
    抢占机制迫使低优先级/超额申请的任务释放资源,让高优先级/资源紧缺的任务获得保障,提升集群整体资源利用率(避免“大任务占坑不干活”)。
  • 负面:过度抢占导致资源浪费
    若抢占策略激进(如YARN的 yarn.scheduler.fair.preemption.timeout 设置过短),任务可能频繁被中断,资源在“抢占 - 重启”循环中内耗,反而降低实际有效利用率。
  1. 对业务逻辑的潜在影响
  • 有状态任务的数据一致性风险
    若任务是有状态计算(如流处理、迭代计算),容器被抢占可能导致中间状态丢失,需依赖Checkpoint机制恢复,增加数据一致性保障的复杂度。
    总结
    资源抢占是一把“双刃剑”:合理配置(如基于优先级、资源使用阈值触发抢占)可优化集群资源公平性与利用率;配置不当或集群过载则会导致任务延迟、失败,甚至引发集群级不稳定。实际中需结合业务优先级、任务类型(如批处理/流处理)和集群规模,精细调整抢占策略(如YARN的公平调度/容量调度参数)。

要优化该Tez任务的参数配置,需结合资源抢占、聚合资源消耗与Tez任务的内存/CPU参数逻辑,分以下步骤调整:

一、核心参数调整:减少资源抢占,匹配实际需求

从图中看,任务被抢占的总内存为 62112 MB (约60GB)、涉及6个非AM容器,反推原单个容器内存请求约 10GB ( 62112 ÷ 6 ≈ 10352 MB )。但聚合资源分配的内存时间积分( 2612397662 MB-seconds )远大于被抢占的资源积分( 24922718 MB-seconds ),说明容器内存申请过高,实际使用不足,需降低容器内存请求。

  1. 调整容器与AM内存
  • hive.tez.container.size :设置单个容器的总内存(需与YARN的 yarn.scheduler.minimum-allocation-mb 匹配,建议设为 4096 MB 或 6144 MB ,即4G/6G,降低被抢占概率)。
  • tez.am.resource.memory.mb :Application Master(AM)的内存,需与 yarn.scheduler.minimum-allocation-mb 一致(如设为 4096 MB ),保证AM不被抢占。
  • hive.tez.container.max.java.heap.size :容器内Java堆内存,建议为 container.size 的80%(如 container.size=4096 MB 时,设为 3276 MB )。
  1. 优化IO与内存缓冲(减少内存浪费)

Tez的IO缓冲内存若设置过大,会导致容器内存“虚高”被YARN误判抢占。需按容器内存比例配置:

  • tez.runtime.io.sort.mb :排序内存,设为 container.size 的40%(如 container.size=4096 MB 时,设为 1638 MB ,不超过2GB)。
  • tez.runtime.unordered.output.buffer.size-mb :非排序输出缓冲,设为 container.size 的10%(如 409 MB )。
  • hive.auto.convert.join.noconditionaltask.size :Map Join内存,设为 container.size 的1/3(如 1365 MB ),避免大Join时内存溢出。

二、辅助优化:提升资源利用率

  1. 开启容器重用(减少资源申请次数)

设置 tez.am.container.reuse.enabled=true ,允许AM容器复用,减少YARN调度 overhead,尤其适合短任务场景。

  1. 控制并行度(避免资源过载)

若任务数据量未达TB级,可降低并行度减少容器数:

  • tez.grouping.split-count :输入分片数(即并行任务数),根据实际数据量调整(如从100+降到50左右),减少总资源申请量。
  1. 匹配YARN集群配置

需确保任务参数与YARN全局配置一致:

  • 若YARN的 yarn.scheduler.minimum-allocation-mb=4096 ,则 tez.am.resource.memory.mb 和 hive.tez.container.size 必须≥4096。
  • 若 yarn.nodemanager.vmem-pmem-ratio=2.1 (默认),则容器虚拟内存上限为 物理内存×2.1 ,需避免Java堆外内存(如NIO缓冲)触发虚拟内存超限。

三、验证与监控

  1. 测试调整后效果:重新运行任务,观察 Resource Preempted 是否减少、 Elapsed (耗时)是否稳定。
  2. 长期监控:通过YARN UI或日志跟踪容器内存实际使用量(如 /proc//stat 解析),逐步微调 container.size 和堆内存参数,直到“实际使用≈申请内存”且无抢占。

示例参数配置(供参考)

set hive.tez.container.size=4096; – 每个容器4G内存
set tez.am.resource.memory.mb=4096; – AM内存与容器一致
set hive.tez.container.max.java.heap.size=3276; – 堆内存为container的80%
set tez.runtime.io.sort.mb=1638; – 排序内存40% of container
set tez.runtime.unordered.output.buffer.size-mb=409; – 非排序缓冲10% of container
set hive.auto.convert.join.noconditionaltask.size=1365; – Map Join内存1/3 of container
set tez.am.container.reuse.enabled=true; – 开启容器重用
set tez.grouping.split-count=50; – 调整并行度

通过“降低容器内存请求+按比例分配子内存+匹配YARN配置”,可减少资源抢占,同时保证任务稳定运行。

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

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

相关文章

基于SpringBoot的个性化教育学习平台的设计与实现(源码+lw+部署文档+讲解等)

课题介绍在教育数字化转型与学习者需求差异化的背景下&#xff0c;传统学习平台 “统一内容、统一进度” 的模式已显局限。当前&#xff0c;平台多提供标准化课程资源&#xff0c;无法根据学习者年龄、基础、目标&#xff08;如升学、技能提升&#xff09;定制学习路径&#xf…

UE5多人MOBA+GAS 48、制作闪现技能

文章目录添加标签添加GA_Blink添加标签 CRUNCH_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Ability_Blink_Teleport)CRUNCH_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Ability_Blink_Cooldown)UE_DEFINE_GAMEPLAY_TAG_COMMENT(Ability_Blink_Teleport, "Ability.Blink.Teleport"…

Swift 实战:实现一个简化版的 Twitter(LeetCode 355)

文章目录摘要描述示例解决答案设计思路题解代码分析测试示例和结果时间复杂度空间复杂度总结摘要 在社交媒体平台里&#xff0c;推送机制是核心功能之一。比如你关注了某人&#xff0c;就希望在自己的时间线上能看到他们的最新消息&#xff0c;同时自己的消息也要能出现在别人…

在浏览器端使用 xml2js 遇到的报错及解决方法

在浏览器端使用 xml2js 遇到的报错及解决方法 一、引言 在前端开发过程中&#xff0c;我们常常需要处理 XML 数据。xml2js 是一个非常流行的用于将 XML 转换为 JavaScript 对象的库。然而&#xff0c;当我们在浏览器端使用它时&#xff0c;可能会遇到一些问题。本文将介绍在浏览…

eChart饼环pie中间显示总数_2个以上0值不挤掉

<!DOCTYPE html> <html> <head><meta charset"utf-8"><title>环饼图显示总数</title><script src"https://cdn.jsdelivr.net/npm/echarts5.4.3/dist/echarts.min.js"></script><style>#main { widt…

Ansible 核心功能进阶:自动化任务的灵活控制与管理

一、管理 FACTS&#xff1a;获取远程主机的 “身份信息”FACTS 是 Ansible 自动收集的远程主机详细信息&#xff08;类似 “主机身份证”&#xff09;&#xff0c;包括主机名、IP、系统版本、硬件配置等。通过 FACTS 可以动态获取主机信息&#xff0c;让 Playbook 更灵活1. 查看…

gRPC网络模型详解

gRPC协议框架 TCP层&#xff1a;底层通信协议&#xff0c;基于TCP连接。 TLS层&#xff1a;该层是可选的&#xff0c;基于TLS加密通道。 HTTP2层&#xff1a;gRPC承载在HTTP2协议上&#xff0c;利用了HTTP2的双向流、流控、头部压缩、单连接上的多 路复用请求等特性。 gRPC层…

[优选算法专题二滑动窗口——将x减到0的最小操作数]

题目链接 将x减到0的最小操作数 题目描述 题目解析 问题重述 给定一个整数数组 nums 和一个整数 x&#xff0c;每次只能从数组的左端或右端移除一个元素&#xff0c;并将该元素的值从 x 中减去。我们需要找到将 x 恰好减为 0 的最少操作次数&#xff0c;如果不可能则返回 -…

AOP配置类自动注入

本文主要探究AopAutoConfiguration配置类里面的bean怎么被自动装配的。代码如下&#xff1a;package com.example.springdemo.demos.a05;import com.example.springdemo.demos.a04.Bean1; import com.example.springdemo.demos.a04.Bean2; import com.example.springdemo.demos…

云计算-K8s 实战:Pod、安全上下文、HPA 、CRD、网络策略、亲和性等功能配置实操指南

简介 此次围绕Kubernetes 日常管理中的核心场景,提供了从基础到进阶的实操配置指南。内容涵盖 9 大关键知识点:从使用 nginx 镜像创建 QoS 类为 Guaranteed 的 Pod,到为 Pod 配置安全上下文以指定运行用户和组;从自定义 Student 资源类型(CRD),到配置 Sidecar 实现跨命…

嵌入式LINUX——————TCP并发服务器

一、服务器1.服务器分类单循环服务器&#xff1a;只能处理一个客户端任务的服务器 并发服务器&#xff1a;可同时处理多个客户端任务的服务器二、TCP并发服务器的构建1.如何构建&#xff1f; &#xff08;1&#xff09;多进程&#xff08;每一次创建都非常耗时耗空间&#…

论文润色不能降低文章的重复率

最近大家问到多的&#xff0c;你们润色好了重复率会不会就降低了。这事儿啊&#xff0c;得从好几个方面去剖析&#xff0c;今天咱们就一块儿来探个究竟。咱们先得清楚&#xff0c;重复率检测工具一般会把内容标记成两类&#xff1a;一是那些和其他文献在文字表达上高度相似的部…

Python爬虫实战:构建alltheplaces平台地理信息数据采集系统

1. 引言 1.1 研究背景与意义 在大数据与智慧城市建设的推动下,地理位置信息(如餐馆、景点、公共设施等 POI 数据)已成为商业分析、城市规划、公共服务优化的核心基础数据。alltheplaces 作为全球领先的开放场所数据平台,整合了来自多个数据源的标准化信息,涵盖场所名称、…

HTML第三次作业

抽奖项目代码<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>简易抽奖转盘</title><sty…

PyTorch 面试题及详细答案120题(01-05)-- 基础概念与安装

《前后端面试题》专栏集合了前后端各个知识模块的面试题&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

云手机选哪个比较好用?

云手机作为基于云计算技术运行的一款虚拟手机&#xff0c;能够帮助企业与个人用户进行账号多开和远程访问等多种功能&#xff0c;是手游玩家的首要选择&#xff0c;能够多开账号挂机不卡顿&#xff0c;但是哪一款云手机更加流畅好用呢&#xff1f;对于热衷于手游的玩家来说&…

[科研理论]无人机底层控制算法PID、LQR、MPC解析

文章目录1. PX4飞控PID简介1.1 位置控制器1.2 速度控制器1.3 加速度和yaw转到姿态1.4 姿态控制器1.5 角速率控制器2. 线性二次型优化&#xff08;LQR&#xff09;控制3. 模型预测控制MPC/NMPC3.1 MPC3.2 NMPC1. PX4飞控PID简介 相关链接&#xff1a;PX4官方中文文档、PID概念(…

AI系统性思维复盘概述

核心价值&#xff1a;从“被动思考”到“主动进化”。 基于数据驱动、机器学习和知识图谱的智能化组织学习系统&#xff0c;它将经验积累从传统的主观性、碎片化模式转变为客观性、系统化的科学模式&#xff0c;最终实现从被动应对向主动预防、从经验决策向数据决策、从个体智慧…

C++继承(2)

2.基类和派生类间的转换 •public继承的派⽣类对象可以赋值给基类的指针/基类的引⽤。这⾥有个形象的说法叫切⽚或者切 割。寓意把派⽣类中基类那部分切出来&#xff0c;基类指针或引⽤指向的是派⽣类中切出来的基类那部分。 • 基类对象不能赋值给派⽣类对象。 • 基类的指针或…

easya2a: 一键将 LangChain Agent 发布为 A2A 服务

easya2a: 一键将 LangChain Agent 发布为 A2A 服务 随着 A2A (Agent-to-Agent) 协议的发布&#xff0c;相关的实践项目也逐渐涌现。对于许多希望体验 A2A 功能&#xff0c;但又担心学习成本和开发时间的开发者来说&#xff0c;推荐使用 easya2a——一个可以快速、无缝地将现有 …