使用Logview 2.0查看作业运行信息

本文为您介绍Logview 2.0的功能及使用,本文简称Logview。您可以通过Logview URL查看作业运行信息。

概述

Logview是MaxCompute作业运行状态信息记录与展现的一个工具,目前支持如下功能:

  • 支持以交互式DAG图展示作业处理逻辑架构,您还可以查看相应的Operation层级。

  • 支持回放作业运行过程。

  • 支持通过Fuxi Sensor查看内存及CPU使用情况。

Logview入口

当您提交运行MaxCompute作业时,系统会自动生成一个以https://logview.aliyun.com/logview开头的URL地址。

  • 使用MaxCompute客户端(odpscmd)提交作业后,您需要手工复制该地址到浏览器中访问。

  • 使用DataWorks提交作业后,您直接点击链接就可以打开Logview界面。

Logview界面如下。URL界面

序号

区域

标题与功能区,详情请参见标题和功能区

Basic Info,详情请参见Basic Info

作业详情,详情请参见作业详情

标题和功能区

标题与功能区包含您提交MaxCompute作业时生成的唯一作业ID及您自定义的作业名称(通过SDK方式提交的作业包含作业名称信息)。您还可以执行如下操作。

图标

功能

打开

打开本地保存的作业详情文件Logview_detail.txt。

返回

返回Logview 1.0版界面。

保存

将作业详情文件保存至本地设备。

Basic Info

Basic Info区域展示的作业基本信息如下。

参数名

描述

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

作业在资源配额组内的排队位置。

作业详情

您可以通过作业详情区域全方位了解作业,作业详情区域包含如下功能区:

Job Details

  • 作业执行图

    Job Detail页签的上半部分为作业执行图。执行图以可视化方式展示三个维度的子任务依赖关系:Fuxi Job层、Fuxi Task层和Operation层,同时提供一系列辅助工具,为排查问题提供帮助。界面构成如下。作业执行图

    序号

    描述

    面包屑导航,用于切换Fuxi Job。JOB:_SQL_0_0_0_job_0为Fuxi Job名称。

    排查问题辅助工具。包含Progress Chart、Input Heat Chart、Output Heat Chart、TaskTime Heart Chart和InstanceTime Heart Chart。

    您可以在此区域刷新作业执行状态(刷新)、全屏或缩放显示作业执行图(全屏)、获取MaxCompute Studio文档(帮助)和切换至任务上一层级(切换层级)。

    缩放辅助工具。

    Fuxi Task。一个MaxCompute作业由一个或多个Fuxi Job组成。每个Fuxi Job由一个或多个Fuxi Task组成。每个Fuxi Task由一个或者多个Fuxi Instance组成,当用户的输入数据量变大时,MaxCompute会在每个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读取和写的行数。

    单击某个Task或在Task上单击右键可以查看Task对应的Operator算子依赖关系及全部Operator算子图。

    您可以快速查看输入和输出表。

    Fuxi Task回放。单击播放即可开始播放,再次单击则暂停。您也可以手动拖动进度条。进度条左边为开始时间,中间为播放时间,右边为结束时间。

    鹰眼。

    说明
    • 不支持回放Running状态的Fuxi Task。

    • AlgoTask类型的作业(例如PAI机器学习),由于只有一个Fuxi Task,故不提供作业执行图。

    • 非SQL类型作业,仅能展示Fuxi Job和Fuxi Task层,不支持展示Operation层。

    • 如果只有一个Fuxi Job,作业执行图默认展示Fuxi Task层依赖关系;否则,默认展示Fuxi Job层依赖关系。

  • 作业运行情况

    Job Detail页签的下半部分为作业运行详细信息。界面构成如下。运行结果

    序号

    描述

    Fuxi Job页签,您可以在此切换Fuxi Job。

    Fuxi Job对应的Fuxi Task详情。在某个Fuxi Job下,单击任一Fuxi Task,在下方会展开该Fuxi Task对应的Fuxi Instance信息。默认展开第一个Fuxi Job的第一个Fuxi Task的Fuxi Instance信息。

    对于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%的现象,此为正常显示。

    Logview为不同阶段的Instance进行了分组。您可以单击Failed快速查看出错的节点。

    Fuxi Instance。

    • ID示例为M1#0_0,其中第一个0的位置代表Fuxi Instance的自增ID;第二个0的位置代表任务的重跑次数,0代表没有重跑,值为几就代表重跑几次。

    • StdOut和StdErr。您可以查看输出和错误信息,您自己打印的信息也可以在这里查看,同时提供下载功能。

    • Debug。调测并排除错误。

    • Fuxi Instance数量限制:

      当使用如下SQL语句时,Fuxi Instance个数限制为1个。

      • limit

      • 窗函数SQL中没有partition by key

      • Aggregate操作SQL中没有group by key

      • Join操作SQL中没有等值Join Key。

      • order by

Fuxi Sensor

Fuxi Sensor是展示MaxCompute作业全维度的资源视图。您可以通过Fuxi Sensor查看Fuxi Instance的CPU及内存的实际消耗量。Fuxi Sensor是作业问题定位以及作业运行质量分析的重要工具。例如以下场景的作业问题可借助Fuxi Sensor进行分析:

  • 作业内存溢出时,分析实际使用的内存量。

例如,您可以通过Fuxi Sensor查看机器学习作业Fuxi Instance的以下资源使用情况:

  • CPU使用量

    CPU指标包括两条线,一条显示申请的CPU量(cpu_plan),另一条显示实际的CPU使用量(cpu_usage)。纵坐标中的400,表示4个Processor。目前用户只可以通过调整Processor的个数来调整申请的CPU量,目前用户无法调整CPU使用量。CPU

  • 内存使用量

    内存指标包括两条线,一条显示申请的内存量(mem_plan),另一条显示实际的内存使用量(mem_usage)。

    内存使用量(mem_usage)包括两部分信息RSS(Resident Set Size)和PageCache。RSS是Malloc(非文件映射)发生缺页之后的内存,该部分内存,在内存紧张时无法被回收。PageCache是内核缓存文件占用的内存,例如读写日志文件,PageCache在内存紧张时通常是可以被回收。

    • 内存详情内存

    • RSS内存使用量RSS

    • PageCache内存使用量Page-cache

Result

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;
  • 当前作业运行失败,显示的为失败原因。

SourceXML

  • XML

    在该页签下以XML方式显示作业等级以及Task相关信息。

  • Settings

    在该页签下显示了当前Task的相关Setting信息。

  • Command

    在该页签下显示了当前Task的相关Flag设置情况。

SQL Script

该页签下显示当前Task的SQL运行脚本。

History

该页签下显示了当前Task的运行历史记录。

SubStatusHistory

在该页签下显示了当前SubTask的运行状态,具体含义如下。substatus

状态

说明

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

作业执行失败。