查看执行结果
分析作业的执行时间与环境资源类型、环境资源大小、处理数据大小等相关。您可以在“作业”页面查看执行结果或进行操作。提供了作业的执行状态的查看,并可对作业执行取消、删除、重试、克隆、导出操作。勾选多个作业,可以批量取消、批量删除、批量重试、批量导出。
作业执行状态如下所示。
- 等待中:作业创建成功,等待处理中。当作业在等待中,task状态全是unknown,时间条显示灰色。
- 运行中:作业创建成功,执行中。可单击作业名称,进入详情页查看运行详情。“运行中”的作业允许取消、克隆。
- 成功:作业运行成功。可单击作业名称,进入详情页查看运行详情。
- 失败:作业运行失败。可单击作业名称,进入详情页查看运行失败原因。
- 取消中:对“运行中”的作业,执行“取消”操作,取消运行。
- 已取消:取消运行成功。
- 强制取消:对于超时失败或者取消但未选择强制取消的场景,可以执行强制取消,强制作业。
查看执行状态
您可以通过单击作业名称,进入详情页面,查看详细的运行信息。包括运行状态、标签、描述、创建时间、完成时间、运行时间、计算节点标签、加速类型、优先级等。单击“概述”列按钮,在展开的信息栏中查看作业的输入&输出、节点参数、应用;在作业的子任务中可以查看日志、事件;在事件页签,可以查看实例的事件详情、下载YAML文件、查看监控。如果并发执行了多个作业,则会产生多个子任务。
对于执行失败的作业,鼠标指向作业状态,在弹出的提示框中可以查看“失败信息”和“失败原因”。同时,使用不同颜色提示执行状态,特别是对于由多个应用构成的分析作业,通过颜色方便地区分应用的执行状态。
- 绿色:运行成功。
- 红色:运行失败。
- 蓝色:等待运行。
- 灰色:被取消运行。
- 蓝色圆圈:运行中。
作业运行的时间,可以通过“概述”列的进度条进行查看。进度条中的颜色与应用状态颜色对应。单击进度条中的颜色块,可以展开并查看应用的运行日志,最多可以显示5000条日志。
分析作业创建后,可以通过“事件”查看容器执行该作业时的动作和状态,单击图标,展开“事件”。
如果作业显示运行正常,但实际作业中的某一个应用运行失败,请检查输入数据是否正常,并修改算法程序入口的main函数,保证运行结果有显式的返回值。
- 故障说明
作业运行时,每个应用称之为一个任务(Task)。部分场景下,任务输入数据异常,实际作业运行失败,但界面显示运行正常。
作业中子任务没有返回正确的值,但是容器仍正常退出return 0,此时判定为子任务已正确执行。
实际上作业的子任务对应的就是K8S中的一个Pod,其返回状态就是Pod的phase映射,即容器以非0状态退出或者被系统终止会算作失败;容器return 0并且不再重启即算成功。详细内容介绍请参见Pod的生命周期。
- 处理建议
所有的算法程序的入口main函数都显式的给出返回值,即正确执行则return 0。其他异常场景return其他数值或者抛出异常,并输出相关日志。
# python def funcA(): try: doSomething(); except: log.print("An exception occurred, xxxxx"); raise 自定义异常; def funcB(): result = doSomething(); return result; if __name__ == '__main__': funcA(); result = funcB(); if result: sys.exit(1); else: sys.exit(0);
# c++ int main(){ int result = doSomething(); if(result != 0){ return -1; } else{ return 0; } }
获取作业结果
作业运行成功后,可以看到每个应用的运行信息:输入输出,节点参数,应用以及日志等信息,最多可以显示5000条日志。
单击具体的输出参数可跳转到具体的文件位置。
同时,项目支持导出作业的元数据信息,包括以下内容。
- 作业的基本配置信息,以yaml文件导出,包含作业名称,依赖的workflow名称/版本,基本的CPU/Memory配置,输入输出参数等信息。
- 作业的运行信息,包括每个任务的启动、停止时间、运行状态,日志链接等。
在作业对应的操作列中,单击“更多 > 导出”,导出单个作业的元数据信息。勾选多个作业,在上方单击“导出”,批量导出作业元数据信息。
Task失败状态条显示说明
每个Task 状态条显示成三段:Task添加重试失败总时间、当前pod等待时间、pod运行时间。
第一段表示所有重试失败的总时间,第二段表示当前pod等待时间,第三段表示当前pod运行时间。
如果所有重试pod都失败,则显示一个总的失败时间。如果没有重试,一次就执行成功,则无需显示失败时间,只显示等待时间+运行时间两段。