用 MaxCompute Studio 查看作业排队详情-阿里云开发者社区

开发者社区> 阿里巴巴大数据计算> 正文
登录阅读全文

用 MaxCompute Studio 查看作业排队详情

简介: 本文首先对MaxCompute作业执行的各个阶段进行说明,然后以MaxCompute Studio为例,说明如何查看作业排队位置,查看队列详情以及作业状态转换历史信息。

各位MaxCompute的用户及运维朋友,在日常使用中,您有没有遇到这种场景: 我作业提交了这么久,为啥还没看到计算任务执行?作业提交后状态一直是 RUNNING ,到底执行到了什么阶段?作业提交后只能等,也不知道完成的进度如何?为何当前作业一直在等待,到底什么作业正在占用着我的计算资源?
现在,为了解决用户的这些痛点,MaxCompute 正式上线了作业队列展示功能。用户可以通过 MaxCompute Studio 和 Logview 查看作业执行的详细阶段,查看计算集群的等待队列,从此不再对提交作业的执行状态一无所知。

用户可以根据队列详情优化自己的作业优先级和调度机制,从而进一步提高计算资源的利用率。

本文首先对MaxCompute作业执行的各个阶段进行说明,然后以MaxCompute Studio为例,说明如何查看作业排队位置,查看队列详情以及作业状态转换历史信息。
注意:本文所说的作业只针对SQL和MR类型,MaxCompute之上运行的其他类型的作业,可能会有不同的调度机制。

作业执行阶段的说明

image1

MaxCompute 作业的生命周期如图所示,作业提交后,首先会在控制集群上进行预处理和优化,生成执行计划;然后会提交到计算集群对应的优先级队列等待分配计算资源;
分配到第一片计算资源后,作业开始正式执行。对于一些异常情况,还可能会出现回退、重新执行等状态。

在排队功能上线之前,所有上述阶段的作业状态都会展示为RUNNING,用户无法知道自己提交的作业进行到哪一个阶段。现在,可以通过作业的substatus属性查看运行中作业的详细状态。substatus具体的状态码说明如下:

ID Description 备注
1010 Waiting for scheduling 作业已提交,准备调度
1011 Waiting for cluster resource 等待作业资源
1012 Waiting for concurrent task slot 等待并发执行资源
1013 Waiting for data replication 等待数据复制
1020 Waiting for execution 等待作业处理
1030 Preparing for execution 准备进行作业处理
1050 Task rerun 重新执行
1090 Execution failed 执行失败
1210 SQLTask is initializing SQL作业初始化中
1220 SQLTask is compiling query SQL作业编译中
1230 SQLTask is optimizing query SQL作业优化中
1240 SQLTask is generating execution plan SQL作业生成执行计划中
1250 SQLTask is running the plan on fuxi SQL作业调度执行中
1260 SQLTask is update meta information SQL作业更新元数据信息
1270 SQLTask is finishing SQL作业成功结束

如何查看作业队列和优先级

MaxCompute Studio从2.7.0版本开始提供作业队列查看的功能。通过Job Explorer查看用户提交的正在运行中的所有作业:

image2

作业在计算集群正式开始执行之前状态为 WAITING,通过hover tooltips可以查看状态详情。
对于处在排队队列中的作业,可以在 排队位置/优先级 列里面看到作业的排队位置和全局优先级。排队位置(Position)值为0表示作业已经分配到计算资源,开始执行。排队位置为正整数n时,表示前面还有n-1个作业在同一队列中等待资源
全局优先级是基于项目空间的优先级以及用户提交作业的priority属性计算出来的,值越大表示优先级越低。

作业分配到计算资源后的状态为 RUNNING

打开作业所在的等待队列

对于排队中的作业,可以点击 排队位置/优先级 列 打开作业所在的等待队列:

image3

排队队列中展示了同一个项目空间内所有未执行结束的作业。其中,未进入排队队列的作业展示在最前方,表示为 -/- ;进入队列等待计算资源的作业按照排队位置有序;已经进入计算集群运行以及计算结束正在执行后处理操作的作业展示在最后。如下图:

image4

用户可以通过排队队列可以轻松看出项目空间内排列在自己作业之前的作业以及长时间占用计算资源的作业。可以据此优化作业优先级及调度策略。

排队队列的详细说明可以在阿里云官网查看 MaxCompute Studio 的使用文档获取。

作业队列中双击 状态详情 列可以查看该作业的状态转换信息。可以看到作业执行各个阶段及执行时间信息。

对于运行中的作业,也可用从作业详情中直接打开所在的排队队列,如图中所示,点击 排队队列 对应的链接:

image5

未来规划

为了帮助用户更好的了解作业运行状态,MaxCompute之后会提供用户作业进度信息,预估作业的执行进度和结束时间。并且会将作业状态转换详情持久化到meta里以便用户在作业结束后进行性能分析和作业比较。同时,也非常欢迎广大用户朋友提出自己的需求和建议,我们一起努力,让MaxCompute成为更好的大数据分析平台。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里巴巴大数据计算
使用钉钉扫一扫加入圈子
+ 订阅

阿里大数据官方技术圈

官方博客
链接