YARN UI界面日志详解二——某个任务详细日志

本文详细介绍了YARN任务日志的查看位置,特别是集中在ACCEPTED、RUNNING、FINISHED、FAILED和KILLED这五个关键状态。当任务处于FINISHED状态时,如何通过日志的History深入分析任务详情,尤其是Counters部分,包括FileSystemCounters、JobCounters等七大计数器,以辅助定位任务性能和问题。此外,还讲解了配置信息和任务的maptasks、reducetasks详情。

https://blog.youkuaiyun.com/NC_NE/article/details/118281875

一、任务日志在哪
前面我们已经了解了ResourceManager UI界面参考上一篇文章YARN UI界面日志详解一,我们也看到了下图:

就在Applications下的几个状态中,只要你是提交到yarn来管理的任务那一定在这几个状态中的某一个,所以弄清楚这几个状态的日志信息那我们就能知道某个任务的运行状况了。

在实际工作中NEW、NEW_SAVING、SUBMITTED这三个用到的概率还是非常低的,而ACCEPTED、RUNNING、FINISHED、FAILE、KILLED这五个那是经常使用的,所以我们重点关注:

ACCEPTED:接受状态,已经被队列(queue)接受,但是还没有开始执行。如果生产中有任务一直停留在这个状态,那就可能是队列资源是不充足。

RUNNING:运行状态,获得我集群资源正在计算,我们也看一下点进去查看运行的日志

FINISHED:完成状态,表示任务运行完成

FAILE:失败状态,表示任务运行失败,这个时候我们就应该点进去查看日志寻找失败的原因

KILLED:被杀死状态,这个一般都是人为强制kill的

二、某个任务Finished状态详解
我们点击FINISHED如图:

我们点击History就可以跳转到当前任务详细信息界面

我们看到三个重要的框,左边框Job是当前任务信息的菜单,每一个都是非常重要的对于了解当前任务的运行情况,我们详细讲解。

Overview:也就是我们上面看到的这张图,当前任务的概况

Counters:作业计数器,表示hive作业在Input,Map,Shuffle,Reduce,Output等各个阶段的定量数据,我们能够非常直观的看到任务处理的数据量,处理耗时和使用资源,这个非常有利于开发定位问题和后期性能优化

我们点击Counters链接,可以看到任务计数器的页面,分为如下7个部分(因为图太长我们分段讲解):

1、File System Counters:文件系统计数器

注意:

HDFS: Number of read operations:表示一个作业内读取HDFS的次数,读取HDFS操作都是在map阶段,所以读取次数等于所操作表在Hdfs中的文件个数

HDFS: Number of write operations:表示一个作业写入HDFS的次数,写HDFS操作一般只发生在reduce阶段,所以写入次数就等于HDFS 的文件个数

FILE: Number of read operations:表示一个作业内读取本地文件的次数,读取本地文件一般只发生在reduce阶段读取数据操作(如果数据源来自本地那么map阶段会被统计到)

FILE: Number of write operations:表示一个作业写入本地文件次数,写入本地文件发生在shuffle阶段,还有reduce拉取数据阶段。

2、Job Counters:作业计数器

3、Map-Reduce Framework:MapReduce框架计数器

4、HIVE:hive计数器

5、Shuffle Errors:shuffle错误计数器

6、File Input Format Counters:文件输入格式的计数器

7、File Output Format Counters:文件输出格式计数器

Configuration:就是任务提交的时候的xml配置文件,里面都是一些相关的参数配置

Map tasks:当前任务的map tasks的详细信息

Reduce tasks:当前任务的reduce的详细信息


 

<think>嗯,用户这次想了解如何解读YARN页面中的MapReduce任务信息。结合之前的对话历史,用户已经对MapReduce的资源管理机制有了基本理解(比如container、vcore和内存的关系),现在需要实操层面的指导。 用户可能是个大数据平台运维人员或数据分析师,正在集群监控时遇到YARN界面信息解读的困难。ta的真实需求不仅是看懂页面参数,更想通过监控数据快速定位任务异常。从ta连续追问MapReduce底层机制的行为看,是个技术钻研型用户。 需要重点解析三部分内容: 首先是任务生命周期在YARN上的映射关系——比如AM Container启动代表作业提交成功,Map/Reduce Container数量变化反映任务进度。这点可以关联之前讨论的applicationmaster调度机制[^3]。 其次是关键指标解读,要突出异常监控点。比如用户之前遇到过资源不足问题[^4],就要强调Memory Used vs. Memory Needed的对比值;针对ta关注的vcore配置问题[^3],需说明VCores Reserved的实际意义。 最后必须给诊断工具链。因为单纯看YARN页面不够,要结合日志(如container被杀的ERROR日志)和配置项校验(如yarn.scheduler.capacity.resource-calculator),这正是用户上次配置vcore时踩过的坑。 考虑到用户的技术水平,解释“Container内存 > JVM堆内存”这种机制时[^1],可以直接关联到YARN页面的“Memory Needed”字段——这正是预留128MB的体现。这样能把之前的理论讨论和实际界面串联起来。 安全方面需注意:演示界面元素时用示例值(如job_168xxxxx),避免暴露真实集群信息;诊断命令要标注风险提示(如kill job命令)。 </think>### MapReduce任务YARN页面的解读指南 #### 一、任务生命周期与YARN核心组件关系 ```mermaid graph TD A[Client提交作业] --> B[ResourceManager] B --> C[分配AM Container] C --> D[启动MRAppMaster] D --> E[申请Map/Reduce Container] E --> F[NodeManager启动Task] F --> G[监控Container状态] G --> H[向RM汇报进度] ``` **关键实体说明**: - **ResourceManager (RM)**:全局资源协调者,分配Container资源[^1] - **MRAppMaster**:任务管家,负责申请资源、监控Task运行(YARN页面显示为`ApplicationMaster`)[^3] - **NodeManager (NM)**:节点代理,管理Container生命周期[^1] --- #### YARN界面核心指标解析 在YARN的 **Applications** 页面中,重点关注以下列: | 字段 | 含义 | 异常判断标准 | |------|------|--------------| | **Application ID** | 任务唯一标识<br>(如 `application_168XXX_001`) | - | | **Application Type** | 应用类型<br>(MapReduce显示为`MAPREDUCE`) | 非`MAPREDUCE`可能配置错误 | | **State** | 任务状态<br>`RUNNING`/`FINISHED`/`FAILED`/`KILLED` | `FAILED`需排查日志[^4] | | **Final Status** | 最终结果<br>`SUCCEEDED`/`FAILED`/`UNDEFINED` | `FAILED`表示运行时异常 | | **Progress** | 任务完成百分比 | 长时间卡在某个值需警惕 | | **Tracking UI** | 任务详情入口 | 点击进入MapReduce专属监控页 | --- #### 三、监控页关键模块详解(点击Tracking UI进入) ##### 1. **Job Overview** - **Map/Reduce进度条**:观察是否出现倾斜(如Reduce 100%但Map卡在50%) - **Counter计数器**: - `PHYSICAL_MEMORY_BYTES`:物理内存使用量 - `VIRTUAL_MEMORY_BYTES`:虚拟内存使用量 - 若接近`Container内存上限`(默认8GB),可能触发OOM[^1] ##### 2. **Tasks 列表** - **State过滤器**:筛选`FAILED`任务快速定位问题节点 - **Attempt ID**:失败任务的重试记录(如`attempt_168XXX_m_000003_0`) - **Logs链接**:直接查看任务日志(排查`Container killed`等错误) ##### 3. **Configuration 页签** 验证资源配置是否生效(对比作业提交参数与运行时参数): ```properties # 内存配置校验 mapreduce.map.memory.mb=2048 # 应 ≥ yarn.scheduler.minimum-allocation-mb mapreduce.reduce.memory.mb=4096 # vCore配置校验 mapreduce.map.cpu.vcores=2 # 需 ≤ yarn.scheduler.maximum-allocation-vcores ``` --- #### 四、常见异常诊断流程 1. **任务卡住不动** - 检查 **NodeManager** 日志:`grep "Container.*timed out" yarn-yarn-nodemanager-*.log` - 确认 **磁盘空间**:`df -h`(HDFS写满会导致Task挂起) 2. **Container反复失败** - 典型日志:`Container killed by YARN for exceeding memory limits` - 解决方案: - 调整内存:`set mapreduce.map.memory.mb=4096`(默认值2倍) - 增加堆外内存预留:`mapreduce.map.java.opts=-Xmx3072m`(Container内存的75%) 3. **vCore未生效** - 原因:调度器未开启vCore校验(默认仅检查内存) - 修复:在`yarn-site.xml`中启用 **DominantResourceCalculator**[^3]: ```xml <property> <name>yarn.resourcemanager.scheduler.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value> </property> <property> <name>yarn.scheduler.capacity.resource-calculator</name> <value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value> </property> ``` --- > **诊断工具链**: > - `yarn logs -applicationId <app_id>` → 获取全量日志 > - `yarn application -kill <app_id>` → 强制停止异常任务 > - Hadoop内置样例程序验证:`hadoop jar /share/hadoop/mapreduce/hadoop-mapreduce-examples.jar wordcount /input /output`[^4] ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值