MaxCompute的Logview分析详解
文章目录
- 一、Logview简介
- 1、概述
- 2、标题与功能
- 3、基础信息
- 二、作业详情
- 1、Job Details
- 2、Fuxi Sensor
- 3、Result
- ①当前作业运行成功,显示的为运行结果。
- ②当前作业运行失败,显示的为失败原因。
- 4、SourceXML
- 5、SQL Script
- 6、History
- 7、SubStatusHistory
- 三、分析调优
- 四、常见报错
一、Logview简介
1、概述
Logview是MaxCompute作业运行状态信息记录与展现的一个工具,目前支持如下功能:
1.支持以交互式DAG图展示作业处理逻辑架构, 查看相应的Operation层级。2.支持回放作业运行过程。3.支持通过Fuxi Sensor查看内存及CPU使用情况。
2、标题与功能
分别对应以下功能
MaxCompute作业时生成的唯一作业ID
打开本地保存的作业详情文件Logview_detail.txt。
返回Logview 1.0版界面。
将作业详情文件保存至本地设备。
3、基础信息
参数 | 描述 |
---|---|
MaxCompute Service | 作业使用的MaxCompute服务的Endpoint。Endpoint详情请参见Endpoint。 |
Project | 作业所属的MaxCompute项目名称。 |
Cloud account | 提交作业的阿里云账号信息。 |
Type | 作业的类型。例如SQL、SQLRT、LOT、XLib、CUPID、AlgoTask和Graph。 |
Status | 作业的状态。状态取值如下: Success:作业执行成功。 Failed:作业执行失败。 Canceled:作业执行取消。 Waiting:作业正在MaxCompute中处理,并没有提交至Fuxi中运行 Running:作业正在Fuxi中处理。 Terminated:作业已执行结束。 |
Start Time | 作业提交时间。 |
End Time | 作业执行结束时间。 |
Latency | 作业执行消耗的时长。 |
Progress | 作业执行进度。 |
Priority | 作业优先级。 |
Queue | 作业在资源配额组内的排队位置。 |
二、作业详情
1、Job Details
主要介绍下Fuxi Task
MaxCompute作业由一个或多个Fuxi Job组成。
每个Fuxi Job由一个或多个Fuxi Task组成。
每个Fuxi Task由一个或者多个Fuxi Instance组成
简单的MapReduce通常会产生两个Fuxi Task,一个是Map一个是Reduce,两个Fuxi Task的名称分别为M1和R2,当SQL比较复杂时,可能会产生多个Fuxi Task。
您可以在执行界面上看到每个Fuxi Task的名称。例如M1,表示一个Map Task;R4_3_9的3、9表示它依赖M3、C9_3执行结束才能开始执行。同理,M2_4_9_10_16表示M2要依赖R4_3_9、C9_3、R10_1_16、C16_1四个Task执行结束后才能开始执行。R/W表示Task读取和写的行数。
注意事项:
不支持回放Running状态的Fuxi Task。AlgoTask类型的作业(例如PAI机器学习),由于只有一个Fuxi Task,故不提供作业执行图。非SQL类型作业,仅能展示Fuxi Job和Fuxi Task层,不支持展示Operation层。如果只有一个Fuxi Job,作业执行图默认展示Fuxi Task层依赖关系;否则,默认展示Fuxi Job层依赖关系。
2、Fuxi Sensor
AlgoTask和CUPID类型作业,此区域会提供Sensor列,您可以单击Fuxi Task对应的Sensor查看Fuxi Instance的CPU及内存信息。Fuxi Job分类如下:
M:数据扫描的作业。R:R开头的是Reduce Job。J: J开头的是Join Job。C:C开头的作业是一个虚拟节点,不涉及任何计算,只做判断选择分支使用。
Fuxi Sensor功能在西南1(成都)、华南1(深圳)、华东2(上海)、华东1(杭州)、华北3(张家口)和华北2(北京)区域已开放。
Fuxi Task会有可能因为interrupted状态而重试运行,此时Progress只显示重试运行部分的进度,所以会出现整个作业已经执行成功但是此Fuxi Task的Progress不是100%的现象,此为正常显示。
3、Result
①当前作业运行成功,显示的为运行结果。
如下面命令选择关闭显示运行结果。
setproject odps.forbid.fetch.result.by.bearertoken=true;如下Flag参数改变显示结果样式。
--CSV格式
set odps.sql.select.output.format=csv;
--Text格式
set odps.sql.select.output.format=HumanReadable;
②当前作业运行失败,显示的为失败原因。
4、SourceXML
XML: 在该页签下以XML方式显示作业等级以及Task相关信息。
Settings: 在该页签下显示了当前Task的相关Setting信息。
Command: 在该页签下显示了当前Task的相关Flag设置情况。
5、SQL Script
显示当前Task的SQL运行脚本。
6、History
显示了当前Task的运行历史记录。
7、SubStatusHistory
显示了当前SubTask的运行状态
状态 | 解释 |
---|---|
Waiting for scheduling | 作业已提交,等待MaxCompute框架调度,通常时间很短。 |
Waiting for cluster resource | MaxCompute框架发现Fuxi计算集群没资源,等待中。 |
Waiting for concurrent task slot | Project级别流控,Project可以设置并行提交SQL个数。 |
Waiting for data replication | 等待数据复制。 |
Waiting for execution slot | 系统级别流控。 |
Waiting for cleaning up of previous task attempt | 等待清理执行历史完成。 |
Waiting for execution | 从父进程队列拿出来分发给子进程执行过程,通常很快。 |
Preparing for execution | 明确知道交给子进程,如果子进程出问题才会时间长。 |
Task is executing | 作业在框架处理中。 |
SQLTask is initializing | SQL作业初始化中。 |
SQLTask is compiling query | SQL作业编译中。 |
SQLTask is optimizing query | SQL作业优化Query,如果执行计划复杂,优化时间会稍长,但过长可能就是出问题了。 |
SQLTask is splitting data sources | SQL作业优化中,切分Data Sources。 |
SQLTask is generating execution plan | SQL作业生成执行计划中,时间长可能是读取分区太多,或者小文件太多。 |
SQLTask is submitting execution plan | SQL作业提交执行计划。 |
Job has been submitted | 作业提交计算集群。 |
Offline Job Waiting for running | 作业提交计算集群后发现Fuxi集群Quota组无资源,此状态表示作业在等待计算资源。作业提交计算集群前本来以为有计算资源,实际提交后发现无计算资源,就会等待。此状态只会出现一次,后续就算没有计算资源也不会再显示。 |
Offline Job is running | Fuxi作业执行中, 如果运行中无资源,会一直保持该状态。例如高优先级作业抢占资源,导致部分Fuxi Instance不能运行,状态为ready。 |
Offline Job is failed | Fuxi作业执行失败。 |
Offline Job is succeed | Fuxi作业执行成功。 |
SQLTask is updating meta information | SQL作业更新元数据信息状态,生成动态分区时,时间可能会稍长。 |
SQLTask is finishing | SQL作业执行结束。 |
Online Job is cancelled by fuxi | Service Mode模式被取消。 |
Task rerun | 作业重跑,可能是Service Mode模式执行失败,采用离线模式,也可能是数据跨集群复制。 |
Online Job Waiting for running | Service Mode模式等待运行。 |
Online Job is running | Service Mode模式运行中。 |
Online Job is failed | Service Mode模式执行失败。 |
Online Job is succeed | Service Mode模式运行成功。 |
Online Job is cancelled by fuxi | Service Mode模式作业被取消。 |
Task key-path executing finished | 作业关键路径完成,但是Detailstatus等尚未完成. |
Task key-path is finished | 作业关键路径完成。 |
Instance key-path is finished | Instance关键路径完成。 |
Task execution is finished | 作业处理完成,生成DetailStatus。 |
Instance execution is finished | 作业处理完成。 |
Execution failed | 作业执行失败。 |